resolve conflicts
This commit is contained in:
commit
6f4eccb317
.DEREK.yml.travis.ymlMakefileREADME.md
builder
scripts
sdcard/rootfs
etc
root/pwnagotchi
config.yml
scripts
blink.sh
pwnagotchi
__init__.pyagent.py
requirements.txtstartup.shlocale
de/LC_MESSAGES
el/LC_MESSAGES
fr/LC_MESSAGES
gr/LC_MESSAGES
it/LC_MESSAGES
mk/LC_MESSAGES
nl/LC_MESSAGES
voice.potplugins
ui
version.pyvoice.py
10
.DEREK.yml
Normal file
10
.DEREK.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
maintainers:
|
||||||
|
- evilsocket
|
||||||
|
- caquino
|
||||||
|
- dadav
|
||||||
|
- justin-p
|
||||||
|
|
||||||
|
features:
|
||||||
|
- comments
|
||||||
|
- pr_description_required
|
||||||
|
|
63
.travis.yml
63
.travis.yml
@ -1,23 +1,52 @@
|
|||||||
dist: bionic
|
dist: bionic
|
||||||
language: generic
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- 1.x
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- LANG=C
|
- LANG=C
|
||||||
- LC_ALL=C
|
- LC_ALL=C
|
||||||
before_cache:
|
|
||||||
- mountpoint -q $TRAVIS_BUILD_DIR/tmp/mnt && sudo umount -R $TRAVIS_BUILD_DIR/tmp/mnt
|
deploy:
|
||||||
- sudo find $TRAVIS_BUILD_DIR/tmp/ -name '*.img' -delete
|
provider: releases
|
||||||
|
api_key:
|
||||||
|
secure: "vBUokTv94n8s65STUgTiD6I0Iy8KXbBRvQUrAof8XG+U4ZMsH5PmDTpS+wz+SaxI6o0PRkfyOiPVdARhiKAFnfatG3q9EHllMQwqRR2YIju51A3aCxgEJ5uWDoybwQdipERUMMYwUO/8XZaRRpwFD2bdQBFWkBtQyMcAkrEL8BXckwQQ531oDN2hK5gAiTllqsOswV2idwUlBRU9jOtStzff+UgUYsp/ZebsRodyOYkEB2Ev15yARo2HTXbyZ2icwHPtMbx5zmNUSRtxs9a4hfzaK3m6ctK8qLYYUdQvXub/ruuACapdw4Ez88LY1agTecbZhFYmJzv8oANH1e4VUI4owuHnZCpU6LRutS4wOhglrkOrGo6lSUlJeA+RtQjyjBugjej9DDtDyyIlRU1ZaBF3qWR9N5EXKuquf0olOfmUR67ap1NykE9VUpzkYjkoVRTiPs/e2onM/nRNOvAQcIt75FD13u+Y/DcYQ8r7KpMIu1HNdtbVx8gMeq76bRhP1YdDg2jm+DdJ21KWjf5QHsbyoXDfJzdKlCloLIlAU3EPJhMoXsnNzre0/FXeUl6dfteR1axNS6U7e/vKsQ9rlUFZWIQaeVPjfXmFKblNNVQ5uFrrsB/EGHcJl7IUx5fvcRT5hMMNwC660YxVkBXDbRb5fxMW5/+K0BOi9cP6en8="
|
||||||
|
skip_cleanup: true
|
||||||
|
file_glob: true
|
||||||
|
file: pwnagotchi-*.zip
|
||||||
|
on:
|
||||||
|
tags: true
|
||||||
|
repo: evilsocket/pwnagotchi
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- /^v[0-9]+\.[0-9]+\.[0-9]+[A-Za-z0-9]+?$/
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
apt: true
|
apt: true
|
||||||
directories:
|
|
||||||
- tmp/
|
|
||||||
before_script:
|
|
||||||
- sudo apt-get -y update
|
|
||||||
- sudo apt-get -y install qemu-user-static binfmt-support qemu bmap-tools
|
|
||||||
- sudo update-binfmts --display
|
|
||||||
- unset GOROOT
|
|
||||||
script:
|
|
||||||
- sudo ./scripts/create_sibling.sh -n pwnagotchi -o pwnagotchi.img
|
|
||||||
- zip -s 2g pwnagotchi.zip pwnagotchi.img
|
|
||||||
|
|
||||||
# TODO: deploy!
|
before_script:
|
||||||
|
- wget https://download.qemu.org/qemu-4.1.0.tar.xz
|
||||||
|
- tar xvJf qemu-4.1.0.tar.xz
|
||||||
|
- cd qemu-4.1.0
|
||||||
|
- ./configure --target-list=arm-softmmu
|
||||||
|
- make -j$(nproc)
|
||||||
|
- sudo make install
|
||||||
|
- cd $TRAVIS_BUILD_DIR
|
||||||
|
- sudo apt-get -y update
|
||||||
|
- sudo apt-get -y install qemu-user-static binfmt-support bmap-tools kpartx
|
||||||
|
- sudo update-binfmts --display
|
||||||
|
|
||||||
|
script:
|
||||||
|
- sudo make clean
|
||||||
|
- sudo -E env "PATH=$PATH" make install
|
||||||
|
- sudo make image -e PWN_HOSTNAME=pwnagotchi VERSION=$TRAVIS_TAG
|
||||||
|
|
||||||
|
before_deploy:
|
||||||
|
# Set up git user name and tag this commit
|
||||||
|
- git config --local user.name "evilsocket"
|
||||||
|
- git config --local user.email "evilsocket@gmail.com"
|
||||||
|
- export TRAVIS_TAG=${TRAVIS_TAG:-$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)}
|
||||||
|
- git tag $TRAVIS_TAG
|
||||||
|
22
Makefile
Normal file
22
Makefile
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
PWN_HOSTNAME=pwnagotchi
|
||||||
|
PWN_VERSION=master
|
||||||
|
|
||||||
|
all: install image clean
|
||||||
|
|
||||||
|
install:
|
||||||
|
curl https://releases.hashicorp.com/packer/1.3.5/packer_1.3.5_linux_amd64.zip -o /tmp/packer.zip
|
||||||
|
unzip /tmp/packer.zip -d /tmp
|
||||||
|
mv /tmp/packer /usr/bin/packer
|
||||||
|
git clone https://github.com/solo-io/packer-builder-arm-image /tmp/packer-builder-arm-image
|
||||||
|
cd /tmp/packer-builder-arm-image && go get -d ./... && go build
|
||||||
|
cp /tmp/packer-builder-arm-image/packer-builder-arm-image /usr/bin
|
||||||
|
|
||||||
|
image:
|
||||||
|
cd builder && sudo /usr/bin/packer build pwnagotchi.json
|
||||||
|
mv builder/output-pwnagotchi/image pwnagotchi-raspbian-lite-$(PWN_VERSION).img
|
||||||
|
zip pwnagotchi-raspbian-lite-$(PWN_VERSION).zip pwnagotchi-raspbian-lite-$(PWN_VERSION).img
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf /tmp/packer-builder-arm-image
|
||||||
|
rm -f pwnagotchi-raspbian-lite.img
|
||||||
|
rm -rf builder/output-pwnagotchi builder/packer_cache
|
75
README.md
75
README.md
@ -52,6 +52,24 @@ The supported models are:
|
|||||||
- [Pimoroni Inky pHAT](https://shop.pimoroni.com/products/inky-phat)
|
- [Pimoroni Inky pHAT](https://shop.pimoroni.com/products/inky-phat)
|
||||||
- [PaPiRus eInk Screen](https://uk.pi-supply.com/products/papirus-zero-epaper-screen-phat-pi-zero)
|
- [PaPiRus eInk Screen](https://uk.pi-supply.com/products/papirus-zero-epaper-screen-phat-pi-zero)
|
||||||
|
|
||||||
|
The only kind of displays supported are the ones listed above, but we are always happy to receive pull requests supporting new displays.
|
||||||
|
|
||||||
|
You need to configure the display type in `config.yml` where you can find `ui.display.type`.
|
||||||
|
|
||||||
|
One thing to note, not all displays are created equaly, TFT displays for example work similar to an HDMI display, and they are not supported, currently all the displays supported are I2C displays.
|
||||||
|
|
||||||
|
### Color and Black & White displays
|
||||||
|
|
||||||
|
Some of the supported displays support Black & White and Coloured versions, one common question is regarding refresh speed of said displays.
|
||||||
|
|
||||||
|
Color displays have a much slower refresh rate, in some cases it can take up to 15 seconds, if slow refresh rates is something that you want to avoid we advise you to use Black & White displays
|
||||||
|
|
||||||
|
### FPS
|
||||||
|
|
||||||
|
You can configure the refresh interval of the display on config.yml, we advise to use a slow refresh to not shorten the lifetime of your display.
|
||||||
|
|
||||||
|
Another option is to change fps to 0, which will only refresh when changes are made to the screen.
|
||||||
|
|
||||||
### Software
|
### Software
|
||||||
|
|
||||||
- Raspbian + [nexmon patches](https://re4son-kernel.com/re4son-pi-kernel/) for monitor mode, or any Linux with a monitor mode enabled interface (if you tune config.yml).
|
- Raspbian + [nexmon patches](https://re4son-kernel.com/re4son-pi-kernel/) for monitor mode, or any Linux with a monitor mode enabled interface (if you tune config.yml).
|
||||||
@ -119,6 +137,7 @@ Pwnagotchi is able to speak multiple languages!! Currently supported are:
|
|||||||
* greek
|
* greek
|
||||||
* macedonian
|
* macedonian
|
||||||
* italian
|
* italian
|
||||||
|
* french
|
||||||
|
|
||||||
If you want to add a language use the `language.sh` script. If you want to add for example the language **italian** you would type:
|
If you want to add a language use the `language.sh` script. If you want to add for example the language **italian** you would type:
|
||||||
|
|
||||||
@ -151,9 +170,61 @@ Now you can use the `preview.py`-script to preview the changes:
|
|||||||
### Plugins
|
### Plugins
|
||||||
|
|
||||||
Pwnagotchi has a simple plugins system that you can use to customize your unit and its behaviour. You can place your plugins anywhere
|
Pwnagotchi has a simple plugins system that you can use to customize your unit and its behaviour. You can place your plugins anywhere
|
||||||
as python files and then edit the `config.yml` file (`main.plugins` value) to point to their containing folder. Check the [plugins folder](https://github.com/evilsocket/pwnagotchi/tree/master/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/) for a list of default
|
as python files and then edit the `config.yml` file (`main.plugins` value) to point to their containing folder. Check the [plugins folder](https://github.com/evilsocket/pwnagotchi/tree/master/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/) for a list of default
|
||||||
plugins and all the callbacks that you can define for your own customizations.
|
plugins and all the callbacks that you can define for your own customizations.
|
||||||
|
|
||||||
|
Here's as an example the GPS plugin:
|
||||||
|
|
||||||
|
```python
|
||||||
|
__author__ = 'evilsocket@gmail.com'
|
||||||
|
__version__ = '1.0.0'
|
||||||
|
__name__ = 'gps'
|
||||||
|
__license__ = 'GPL3'
|
||||||
|
__description__ = 'Save GPS coordinates whenever an handshake is captured.'
|
||||||
|
__enabled__ = True # set to false if you just don't use GPS
|
||||||
|
|
||||||
|
import core
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
|
||||||
|
device = '/dev/ttyUSB0'
|
||||||
|
speed = 19200
|
||||||
|
running = False
|
||||||
|
|
||||||
|
|
||||||
|
def on_loaded():
|
||||||
|
core.log("GPS plugin loaded for %s" % device)
|
||||||
|
|
||||||
|
|
||||||
|
def on_ready(agent):
|
||||||
|
global running
|
||||||
|
|
||||||
|
if os.path.exists(device):
|
||||||
|
core.log("enabling GPS bettercap's module for %s" % device)
|
||||||
|
try:
|
||||||
|
agent.run('gps off')
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
agent.run('set gps.device %s' % device)
|
||||||
|
agent.run('set gps.speed %d' % speed)
|
||||||
|
agent.run('gps on')
|
||||||
|
running = True
|
||||||
|
else:
|
||||||
|
core.log("no GPS detected")
|
||||||
|
|
||||||
|
|
||||||
|
def on_handshake(agent, filename, access_point, client_station):
|
||||||
|
if running:
|
||||||
|
info = agent.session()
|
||||||
|
gps = info['gps']
|
||||||
|
gps_filename = filename.replace('.pcap', '.gps.json')
|
||||||
|
|
||||||
|
core.log("saving GPS to %s (%s)" % (gps_filename, gps))
|
||||||
|
with open(gps_filename, 'w+t') as fp:
|
||||||
|
json.dump(gps, fp)
|
||||||
|
```
|
||||||
|
|
||||||
### Random Info
|
### Random Info
|
||||||
|
|
||||||
- `hostname` sets the unit name.
|
- `hostname` sets the unit name.
|
||||||
@ -167,7 +238,7 @@ the `PARTUUID`s for `rootfs` and `boot` partitions are the same in `/etc/fstab`.
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
`pwnagotchi` is made with ♥ by [@evilsocket](https://twitter.com/evilsocket) and it's released under the GPL3 license.
|
`pwnagotchi` is made with ♥ by [@evilsocket](https://twitter.com/evilsocket) and the [amazing dev team](https://github.com/evilsocket/pwnagotchi/graphs/contributors). It's released under the GPL3 license.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
33
builder/pwnagotchi.json
Normal file
33
builder/pwnagotchi.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"home": "{{env `HOME`}}"
|
||||||
|
},
|
||||||
|
"builders": [{
|
||||||
|
"name": "pwnagotchi",
|
||||||
|
"type": "arm-image",
|
||||||
|
"iso_url" : "https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-07-12/2019-07-10-raspbian-buster-lite.zip",
|
||||||
|
"iso_checksum_type":"sha256",
|
||||||
|
"iso_checksum":"9e5cf24ce483bb96e7736ea75ca422e3560e7b455eee63dd28f66fa1825db70e",
|
||||||
|
"last_partition_extra_size" : 3221225472
|
||||||
|
}],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [
|
||||||
|
"sed -i 's/^\\([^#]\\)/#\\1/g' /etc/ld.so.preload",
|
||||||
|
"apt-get -y update",
|
||||||
|
"apt-get install -y ansible"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"ansible-local",
|
||||||
|
"playbook_file": "pwnagotchi.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [
|
||||||
|
"sed -i 's/^#\\(.+\\)/\\1/g' /etc/ld.so.preload"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
306
builder/pwnagotchi.yml
Normal file
306
builder/pwnagotchi.yml
Normal file
@ -0,0 +1,306 @@
|
|||||||
|
---
|
||||||
|
- hosts:
|
||||||
|
- 127.0.0.1
|
||||||
|
become: yes
|
||||||
|
vars:
|
||||||
|
pwn_hostname: "pwnagotchi"
|
||||||
|
pwn_version: "master"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: selected hostname
|
||||||
|
debug:
|
||||||
|
msg: "{{ pwn_hostname }}"
|
||||||
|
|
||||||
|
- name: build version
|
||||||
|
debug:
|
||||||
|
msg: "{{ pwn_version }}"
|
||||||
|
|
||||||
|
- name: change hostname
|
||||||
|
hostname:
|
||||||
|
name: "{{pwn_hostname}}"
|
||||||
|
|
||||||
|
- name: add hostname to /etc/hosts
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/hosts
|
||||||
|
regexp: '^127\.0\.0\.1[ \t]+localhost'
|
||||||
|
line: '127.0.0.1 localhost {{pwn_hostname}} {{pwn_hostname}}.local'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add re4son-kernel repo key
|
||||||
|
apt_key:
|
||||||
|
url: https://re4son-kernel.com/keys/http/archive-key.asc
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add re4son-kernel repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb http://http.re4son-kernel.com/re4son/ kali-pi main
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: update apt package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: upgrade apt distro
|
||||||
|
apt:
|
||||||
|
upgrade: dist
|
||||||
|
|
||||||
|
- name: install packages
|
||||||
|
apt:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- vim
|
||||||
|
- screen
|
||||||
|
- golang
|
||||||
|
- git
|
||||||
|
- build-essential
|
||||||
|
- python3-pip
|
||||||
|
- gawk
|
||||||
|
- libopenmpi-dev
|
||||||
|
- libatlas-base-dev
|
||||||
|
- libjasper-dev
|
||||||
|
- libqtgui4
|
||||||
|
- libqt4-test
|
||||||
|
- libopenjp2-7
|
||||||
|
- tcpdump
|
||||||
|
- lsof
|
||||||
|
- libilmbase23
|
||||||
|
- libopenexr23
|
||||||
|
- libgstreamer1.0-0
|
||||||
|
- libavcodec58
|
||||||
|
- libavformat58
|
||||||
|
- libswscale5
|
||||||
|
- libpcap-dev
|
||||||
|
- libusb-1.0-0-dev
|
||||||
|
- libnetfilter-queue-dev
|
||||||
|
- dphys-swapfile
|
||||||
|
- kalipi-kernel
|
||||||
|
- kalipi-bootloader
|
||||||
|
- kalipi-re4son-firmware
|
||||||
|
- kalipi-kernel-headers
|
||||||
|
- libraspberrypi0
|
||||||
|
- libraspberrypi-dev
|
||||||
|
- libraspberrypi-doc
|
||||||
|
- libraspberrypi-bin
|
||||||
|
- fonts-dejavu
|
||||||
|
- fonts-dejavu-core
|
||||||
|
- fonts-dejavu-extra
|
||||||
|
|
||||||
|
- name: configure dphys-swapfile
|
||||||
|
file:
|
||||||
|
path: /etc/dphys-swapfile
|
||||||
|
content: "CONF_SWAPSIZE=1024"
|
||||||
|
|
||||||
|
- name: disable unecessary services
|
||||||
|
systemd:
|
||||||
|
name: "{{services}}"
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
vars:
|
||||||
|
services:
|
||||||
|
- apt-daily.timer
|
||||||
|
- apt-daily.service
|
||||||
|
- apt-daily-upgrade.timer
|
||||||
|
- apt-daily-upgrade.service
|
||||||
|
- bluetooth.service
|
||||||
|
- triggerhappy.service
|
||||||
|
|
||||||
|
- name: enable dphys-swapfile service
|
||||||
|
systemd:
|
||||||
|
name: dphys-swapfile.service
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: build bettercap
|
||||||
|
command: go get -u github.com/bettercap/bettercap
|
||||||
|
environment:
|
||||||
|
GOPATH: /root/go
|
||||||
|
GOROOT: /usr/lib/go
|
||||||
|
|
||||||
|
- name: install bettercap
|
||||||
|
copy:
|
||||||
|
src: /root/go/bin/bettercap
|
||||||
|
dest: /usr/bin/bettercap
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: clone bettercap caplets
|
||||||
|
git:
|
||||||
|
repo: https://github.com/bettercap/caplets.git
|
||||||
|
dest: /tmp/caplets
|
||||||
|
|
||||||
|
- name: install bettercap caplets
|
||||||
|
make:
|
||||||
|
chdir: /tmp/caplets
|
||||||
|
target: install
|
||||||
|
|
||||||
|
- name: clone pwnagotchi repository
|
||||||
|
git:
|
||||||
|
repo: https://github.com/evilsocket/pwnagotchi.git
|
||||||
|
dest: /tmp/pwnagotchi
|
||||||
|
|
||||||
|
- name: copy pwnagotchi files to final destination
|
||||||
|
copy:
|
||||||
|
src: /tmp/pwnagotchi/sdcard/rootfs/root/pwnagotchi/
|
||||||
|
dest: /root/pwnagotchi/
|
||||||
|
mode: preserve
|
||||||
|
|
||||||
|
- name: remove pwnagotchi files from temporary repository
|
||||||
|
file:
|
||||||
|
path: /tmp/pwnagotchi
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: install python modules
|
||||||
|
pip:
|
||||||
|
requirements: /root/pwnagotchi/scripts/requirements.txt
|
||||||
|
|
||||||
|
- name: create cpuusage script
|
||||||
|
copy:
|
||||||
|
dest: /usr/bin/cpuusage
|
||||||
|
mode: 0755
|
||||||
|
content: |
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
top -b -n1 | awk '/Cpu\(s\)/ { printf("%d %", $2 + $4 + 0.5) }'
|
||||||
|
sleep 3
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: create memusage script
|
||||||
|
copy:
|
||||||
|
dest: /usr/bin/memusage
|
||||||
|
mode: 0755
|
||||||
|
content: |
|
||||||
|
#!/usr/bin/env
|
||||||
|
free -m | awk '/Mem/ { printf( "%d %", $3 / $2 * 100 + 0.5 ) }'
|
||||||
|
|
||||||
|
- name: create monstart script
|
||||||
|
copy:
|
||||||
|
dest: /usr/bin/monstart
|
||||||
|
mode: 0755
|
||||||
|
content: |
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
iw phy phy0 interface add mon0 type monitor && ifconfig mon0 up
|
||||||
|
|
||||||
|
- name: create monstop script
|
||||||
|
copy:
|
||||||
|
dest: /usr/bin/monstop
|
||||||
|
mode: 0755
|
||||||
|
content: |
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
ifconfig mon0 down && iw dev mon0 del
|
||||||
|
|
||||||
|
- name: configure rc.local
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/rc.local
|
||||||
|
insertbefore: "exit 0"
|
||||||
|
block: |
|
||||||
|
if ! /opt/vc/bin/tvservice -s | grep HDMI; then
|
||||||
|
/opt/vc/bin/tvservice -o
|
||||||
|
fi
|
||||||
|
/root/pwnagotchi/scripts/startup.sh &
|
||||||
|
|
||||||
|
- name: configure lo interface
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/network/interfaces.d/lo-cfg
|
||||||
|
create: yes
|
||||||
|
block: |
|
||||||
|
auto lo
|
||||||
|
iface lo inet loopback
|
||||||
|
|
||||||
|
- name: configure wlan interface
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/network/interfaces.d/wlan0-cfg
|
||||||
|
create: yes
|
||||||
|
block: |
|
||||||
|
allow-hotplug wlan0
|
||||||
|
iface wlan0 inet static
|
||||||
|
|
||||||
|
- name: configure usb interface
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/network/interfaces.d/usb0-cfg
|
||||||
|
create: yes
|
||||||
|
block: |
|
||||||
|
allow-hotplug usb0
|
||||||
|
iface usb0 inet static
|
||||||
|
address 10.0.0.2
|
||||||
|
netmask 255.255.255.0
|
||||||
|
network 10.0.0.0
|
||||||
|
broadcast 10.0.0.255
|
||||||
|
gateway 10.0.0.1
|
||||||
|
|
||||||
|
- name: configure eth0 interface (pi2/3/4)
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/network/interfaces.d/eth0-cfg
|
||||||
|
create: yes
|
||||||
|
block: |
|
||||||
|
allow-hotplug eth0
|
||||||
|
iface eth0 inet dhcp
|
||||||
|
|
||||||
|
- name: enable ssh on boot
|
||||||
|
file:
|
||||||
|
path: /boot/ssh
|
||||||
|
state: touch
|
||||||
|
|
||||||
|
- name: adjust /boot/config.txt
|
||||||
|
lineinfile:
|
||||||
|
dest: /boot/config.txt
|
||||||
|
insertafter: EOF
|
||||||
|
line: '{{ item }}'
|
||||||
|
with_items:
|
||||||
|
- "dtoverlay=dwc2"
|
||||||
|
- "dtparam=spi=on"
|
||||||
|
- "dtoverlay=spi1-3cs"
|
||||||
|
- "dtoverlay=pi3-disable-bt"
|
||||||
|
- "dtparam=audio=off"
|
||||||
|
|
||||||
|
- name: change root partition
|
||||||
|
replace:
|
||||||
|
dest: /boot/cmdline.txt
|
||||||
|
backup: no
|
||||||
|
regexp: "root=PARTUUID=[a-zA-Z0-9\\-]+"
|
||||||
|
replace: "root=/dev/mmcblk0p2"
|
||||||
|
|
||||||
|
- name: configure /boot/cmdline.txt
|
||||||
|
lineinfile:
|
||||||
|
path: /boot/cmdline.txt
|
||||||
|
backrefs: True
|
||||||
|
state: present
|
||||||
|
backup: no
|
||||||
|
regexp: '(.*)$'
|
||||||
|
line: '\1 modules-load=dwc2,g_ether'
|
||||||
|
|
||||||
|
- name: configure ssh
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/ssh/sshd_config
|
||||||
|
backup: no
|
||||||
|
regexp: '#?PermitRootLogin (.*)$'
|
||||||
|
line: 'PermitRootLogin yes'
|
||||||
|
|
||||||
|
- name: configure motd
|
||||||
|
copy:
|
||||||
|
dest: /etc/motd
|
||||||
|
content: "(◕‿‿◕) {{pwn_hostname}} (pwnagotchi-{{pwn_version}})"
|
||||||
|
|
||||||
|
- name: clean apt cache
|
||||||
|
apt:
|
||||||
|
autoclean: yes
|
||||||
|
|
||||||
|
- name: remove dependencies that are no longer required
|
||||||
|
apt:
|
||||||
|
autoremove: yes
|
||||||
|
|
||||||
|
- name: remove ssh keys
|
||||||
|
file:
|
||||||
|
state: absent
|
||||||
|
path: "{{item}}"
|
||||||
|
with_items:
|
||||||
|
- /etc/ssh/ssh_host_rsa_key
|
||||||
|
- /etc/ssh/ssh_host_rsa_key.pub
|
||||||
|
- /etc/ssh/ssh_host_dsa_key
|
||||||
|
- /etc/ssh/ssh_host_dsa_key.pub
|
||||||
|
- /etc/ssh/ssh_host/ecdsa_key
|
||||||
|
- /etc/ssh/ssh_host/ecdsa_key.pub
|
||||||
|
- /etc/ssh/ssh_host_ed25519_key
|
||||||
|
- /etc/ssh/ssh_host_ed25519_key.pub
|
57
scripts/changelog.sh
Executable file
57
scripts/changelog.sh
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
NEW=()
|
||||||
|
FIXES=()
|
||||||
|
MISC=()
|
||||||
|
|
||||||
|
echo "@ Fetching remote tags ..."
|
||||||
|
git fetch --tags >/dev/null
|
||||||
|
printf "\n\n"
|
||||||
|
|
||||||
|
CURTAG=$(git describe --tags --abbrev=0)
|
||||||
|
OUTPUT=$(git log $CURTAG..HEAD --oneline)
|
||||||
|
IFS=$'\n' LINES=($OUTPUT)
|
||||||
|
|
||||||
|
for LINE in "${LINES[@]}"; do
|
||||||
|
LINE=$(echo "$LINE" | sed -E "s/^[[:xdigit:]]+\s+//")
|
||||||
|
if [[ $LINE == *"new:"* ]]; then
|
||||||
|
LINE=$(echo "$LINE" | sed -E "s/^new: //")
|
||||||
|
NEW+=("$LINE")
|
||||||
|
elif [[ $LINE == *"fix:"* ]]; then
|
||||||
|
LINE=$(echo "$LINE" | sed -E "s/^fix: //")
|
||||||
|
FIXES+=("$LINE")
|
||||||
|
elif [[ $LINE != *"i did not bother commenting"* ]] && [[ $LINE != *"Merge "* ]]; then
|
||||||
|
echo " MISC LINE =$LINE"
|
||||||
|
LINE=$(echo "$LINE" | sed -E "s/^[a-z]+: //")
|
||||||
|
MISC+=("$LINE")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NEW" ]; then
|
||||||
|
echo
|
||||||
|
echo "**New Features**"
|
||||||
|
echo
|
||||||
|
for l in "${NEW[@]}"; do
|
||||||
|
echo "* $l"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$FIXES" ]; then
|
||||||
|
echo
|
||||||
|
echo "**Fixes**"
|
||||||
|
echo
|
||||||
|
for l in "${FIXES[@]}"; do
|
||||||
|
echo "* $l"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$MISC" ]; then
|
||||||
|
echo
|
||||||
|
echo "**Misc**"
|
||||||
|
echo
|
||||||
|
for l in "${MISC[@]}"; do
|
||||||
|
echo "* $l"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
28
scripts/release.sh
Executable file
28
scripts/release.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# nothing to see here, just a utility i use to create new releases ^_^
|
||||||
|
|
||||||
|
VERSION_FILE=$(dirname "${BASH_SOURCE[0]}")/../sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/version.py
|
||||||
|
echo "version file is $VERSION_FILE"
|
||||||
|
CURRENT_VERSION=$(cat $VERSION_FILE | grep version | cut -d"'" -f2)
|
||||||
|
TO_UPDATE=(
|
||||||
|
$VERSION_FILE
|
||||||
|
)
|
||||||
|
|
||||||
|
echo -n "current version is $CURRENT_VERSION, select new version: "
|
||||||
|
read NEW_VERSION
|
||||||
|
echo "creating version $NEW_VERSION ...\n"
|
||||||
|
|
||||||
|
for file in "${TO_UPDATE[@]}"; do
|
||||||
|
echo "patching $file ..."
|
||||||
|
sed -i.bak "s/$CURRENT_VERSION/$NEW_VERSION/g" "$file"
|
||||||
|
rm -rf "$file.bak"
|
||||||
|
git add $file
|
||||||
|
done
|
||||||
|
|
||||||
|
git commit -m "releasing v$NEW_VERSION"
|
||||||
|
git push
|
||||||
|
git tag -a v$NEW_VERSION -m "release v$NEW_VERSION"
|
||||||
|
git push origin v$NEW_VERSION
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "All done, v$NEW_VERSION released ^_^"
|
@ -11,6 +11,9 @@
|
|||||||
#
|
#
|
||||||
# By default this script does nothing.
|
# By default this script does nothing.
|
||||||
# Powersave (Disable HDMI) ~30ma
|
# Powersave (Disable HDMI) ~30ma
|
||||||
/opt/vc/bin/tvservice -o
|
sleep 10
|
||||||
|
if ! /opt/vc/bin/tvservice -s | grep HDMI; then
|
||||||
|
/opt/vc/bin/tvservice -o
|
||||||
|
fi
|
||||||
/root/pwnagotchi/scripts/startup.sh &
|
/root/pwnagotchi/scripts/startup.sh &
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -91,7 +91,10 @@ personality:
|
|||||||
|
|
||||||
# ui configuration
|
# ui configuration
|
||||||
ui:
|
ui:
|
||||||
# ePaper display can update every 3 secs anyway
|
# ePaper display can update every 3 secs anyway, set to 0 to only refresh for major data changes
|
||||||
|
# IMPORTANT: The lifespan of an eINK display depends on the cumulative amount of refreshes. If you want to
|
||||||
|
# preserve your display over time, you should set this value to 0.0 so that the display will be refreshed only
|
||||||
|
# if any of the important data fields changed (the uptime and blinking cursor won't trigger a refresh).
|
||||||
fps: 0.3
|
fps: 0.3
|
||||||
display:
|
display:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
@ -9,4 +9,4 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo 0 >/sys/class/leds/led0/brightness
|
echo 0 >/sys/class/leds/led0/brightness
|
||||||
sleep 0.3
|
sleep 0.3
|
@ -1,7 +1,5 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
version = '1.0.0a'
|
|
||||||
|
|
||||||
_name = None
|
_name = None
|
||||||
|
|
||||||
|
|
||||||
|
@ -347,13 +347,13 @@ class Agent(Client, AsyncAdvertiser, AsyncTrainer):
|
|||||||
if key not in self._handshakes:
|
if key not in self._handshakes:
|
||||||
self._handshakes[key] = h
|
self._handshakes[key] = h
|
||||||
new_shakes += 1
|
new_shakes += 1
|
||||||
apsta = self._find_ap_sta_in(sta_mac, ap_mac, s)
|
ap_and_station = self._find_ap_sta_in(sta_mac, ap_mac, s)
|
||||||
if apsta is None:
|
if ap_and_station is None:
|
||||||
core.log("!!! captured new handshake: %s !!!" % key)
|
core.log("!!! captured new handshake: %s !!!" % key)
|
||||||
self._last_pwnd = ap_mac
|
self._last_pwnd = ap_mac
|
||||||
plugins.on('handshake', self, filename, ap_mac, sta_mac)
|
plugins.on('handshake', self, filename, ap_mac, sta_mac)
|
||||||
else:
|
else:
|
||||||
(ap, sta) = apsta
|
(ap, sta) = ap_and_station
|
||||||
self._last_pwnd = ap['hostname'] if ap['hostname'] != '' and ap[
|
self._last_pwnd = ap['hostname'] if ap['hostname'] != '' and ap[
|
||||||
'hostname'] != '<hidden>' else ap_mac
|
'hostname'] != '<hidden>' else ap_mac
|
||||||
core.log("!!! captured new handshake on channel %d: %s (%s) -> %s [%s (%s)] !!!" % ( \
|
core.log("!!! captured new handshake on channel %d: %s (%s) -> %s [%s (%s)] !!!" % ( \
|
||||||
|
Binary file not shown.
@ -1,14 +1,13 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# German language
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
# Copyright (C) 2019
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the pwnagotchi package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# dadav <33197631+dadav@users.noreply.github.com>, 2019.
|
||||||
#
|
#
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-09-29 13:34+0200\n"
|
"POT-Creation-Date: 2019-10-03 12:22+0200\n"
|
||||||
"PO-Revision-Date: 2019-09-29 14:00+0200\n"
|
"PO-Revision-Date: 2019-09-29 14:00+0200\n"
|
||||||
"Last-Translator: dadav <33197631+dadav@users.noreply.github.com>\n"
|
"Last-Translator: dadav <33197631+dadav@users.noreply.github.com>\n"
|
||||||
"Language-Team: DE <33197631+dadav@users.noreply.github.com>\n"
|
"Language-Team: DE <33197631+dadav@users.noreply.github.com>\n"
|
||||||
@ -17,28 +16,19 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: voice.py:16
|
#: voice.py:18
|
||||||
msgid "ZzzzZZzzzzZzzz"
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:21
|
|
||||||
msgid ""
|
|
||||||
"Hi, I'm Pwnagotchi!\n"
|
|
||||||
"Starting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Hi, ich bin\n"
|
|
||||||
"ein Pwnagotchi!\n"
|
|
||||||
"Starte ..."
|
|
||||||
|
|
||||||
#: voice.py:22
|
#: voice.py:22
|
||||||
msgid ""
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
"New day, new hunt,\n"
|
msgstr "Hi, ich bin ein Pwnagotchi! Starte ..."
|
||||||
"new pwns!"
|
|
||||||
msgstr ""
|
|
||||||
"Neuer Tag, neue Jagd,\n"
|
|
||||||
"neue Pwns!"
|
|
||||||
|
|
||||||
#: voice.py:23
|
#: voice.py:23
|
||||||
|
msgid "New day, new hunt, new pwns!"
|
||||||
|
msgstr "Neuer Tag, neue Jagd, neue Pwns!"
|
||||||
|
|
||||||
|
#: voice.py:24
|
||||||
msgid "Hack the Planet!"
|
msgid "Hack the Planet!"
|
||||||
msgstr "Hack den Planet!"
|
msgstr "Hack den Planet!"
|
||||||
|
|
||||||
@ -47,298 +37,202 @@ msgid "AI ready."
|
|||||||
msgstr "KI bereit."
|
msgstr "KI bereit."
|
||||||
|
|
||||||
#: voice.py:29
|
#: voice.py:29
|
||||||
msgid ""
|
msgid "The neural network is ready."
|
||||||
"The neural network\n"
|
msgstr "Das neurale Netz ist bereit."
|
||||||
"is ready."
|
|
||||||
msgstr ""
|
|
||||||
"Das neurale Netz\n"
|
|
||||||
"ist bereit."
|
|
||||||
|
|
||||||
#: voice.py:39
|
#: voice.py:37
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
"Hey, channel {channel} is\n"
|
msgstr "Hey, Channel {channel} ist frei! Dein AP wir des dir danken."
|
||||||
"free! Your AP will\n"
|
|
||||||
"say thanks."
|
|
||||||
msgstr ""
|
|
||||||
"Hey, Channel {channel} ist\n"
|
|
||||||
"frei! Dein AP wird\n"
|
|
||||||
"es dir danken."
|
|
||||||
|
|
||||||
#: voice.py:44
|
#: voice.py:41
|
||||||
msgid "I'm bored ..."
|
msgid "I'm bored ..."
|
||||||
msgstr "Mir ist langweilig..."
|
msgstr "Mir ist langweilig..."
|
||||||
|
|
||||||
#: voice.py:45
|
#: voice.py:42
|
||||||
msgid "Let's go for a walk!"
|
msgid "Let's go for a walk!"
|
||||||
msgstr "Lass uns laufen gehen!"
|
msgstr "Lass uns laufen gehen!"
|
||||||
|
|
||||||
#: voice.py:49
|
#: voice.py:45
|
||||||
msgid ""
|
msgid "This is the best day of my life!"
|
||||||
"This is the best\n"
|
msgstr "Das ist der beste Tag meines Lebens."
|
||||||
"day of my life!"
|
|
||||||
msgstr ""
|
|
||||||
"Das ist der beste\n"
|
|
||||||
"Tag meines Lebens."
|
|
||||||
|
|
||||||
#: voice.py:53
|
#: voice.py:48
|
||||||
msgid "Shitty day :/"
|
msgid "Shitty day :/"
|
||||||
msgstr "Scheis Tag :/"
|
msgstr "Scheis Tag :/"
|
||||||
|
|
||||||
#: voice.py:58
|
#: voice.py:52
|
||||||
msgid "I'm extremely bored ..."
|
msgid "I'm extremely bored ..."
|
||||||
msgstr "Mir ist sau langweilig..."
|
msgstr "Mir ist sau langweilig..."
|
||||||
|
|
||||||
#: voice.py:59
|
#: voice.py:53
|
||||||
msgid "I'm very sad ..."
|
msgid "I'm very sad ..."
|
||||||
msgstr "Ich bin sehr traurig..."
|
msgstr "Ich bin sehr traurig..."
|
||||||
|
|
||||||
#: voice.py:60
|
#: voice.py:54
|
||||||
msgid "I'm sad"
|
msgid "I'm sad"
|
||||||
msgstr "Ich bin traurig"
|
msgstr "Ich bin traurig"
|
||||||
|
|
||||||
#: voice.py:66
|
#: voice.py:59
|
||||||
msgid "I'm living the life!"
|
msgid "I'm living the life!"
|
||||||
msgstr "Ich lebe das Leben!"
|
msgstr "Ich lebe das Leben!"
|
||||||
|
|
||||||
#: voice.py:67
|
#: voice.py:60
|
||||||
msgid "I pwn therefore I am."
|
msgid "I pwn therefore I am."
|
||||||
msgstr "Ich pwne, also bin ich."
|
msgstr "Ich pwne, also bin ich."
|
||||||
|
|
||||||
#: voice.py:68
|
#: voice.py:61
|
||||||
msgid "So many networks!!!"
|
msgid "So many networks!!!"
|
||||||
msgstr "So viele Netwerke!!!"
|
msgstr "So viele Netwerke!!!"
|
||||||
|
|
||||||
#: voice.py:69
|
#: voice.py:62
|
||||||
msgid ""
|
msgid "I'm having so much fun!"
|
||||||
"I'm having so much\n"
|
msgstr "Ich habe sooo viel Spaß!"
|
||||||
"fun!"
|
|
||||||
msgstr ""
|
|
||||||
"Ich habe sooo viel\n"
|
|
||||||
"Spaß!"
|
|
||||||
|
|
||||||
#: voice.py:70
|
#: voice.py:63
|
||||||
msgid ""
|
msgid "My crime is that of curiosity ..."
|
||||||
"My crime is that of\n"
|
msgstr "Mein Verbrechen ist das der Neugier ..."
|
||||||
"curiosity ..."
|
|
||||||
msgstr ""
|
|
||||||
"Mein Verbrechen ist\n"
|
|
||||||
"das der Neugier ..."
|
|
||||||
|
|
||||||
#: voice.py:75
|
#: voice.py:67
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
"Hello\n"
|
msgstr "Hallo {name}, nett Dich kennenzulernen."
|
||||||
"{name}!\n"
|
|
||||||
"Nice to meet you. {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Hallo {name},\n"
|
|
||||||
"Nett Dich\n"
|
|
||||||
"kennenzulernen."
|
|
||||||
|
|
||||||
#: voice.py:76
|
#: voice.py:68
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Unit {name} is nearby! {name}"
|
||||||
"Unit\n"
|
msgstr "Gerät {name} ist in der nähe!!"
|
||||||
"{name}\n"
|
|
||||||
"is nearby! {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Gerät {name}\n"
|
|
||||||
"ist in der\n"
|
|
||||||
"nähe!!"
|
|
||||||
|
|
||||||
#: voice.py:81
|
#: voice.py:72
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Uhm ... goodbye {name}"
|
||||||
"Uhm ...\n"
|
msgstr "Uhm ...tschüß {name}"
|
||||||
"goodbye\n"
|
|
||||||
"{name}"
|
|
||||||
msgstr ""
|
|
||||||
"Uhm ...\n"
|
|
||||||
"tschüß\n"
|
|
||||||
"{name}"
|
|
||||||
|
|
||||||
#: voice.py:82
|
#: voice.py:73
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} is gone ..."
|
||||||
"{name}\n"
|
msgstr "{name} ist weg ..."
|
||||||
"is gone ..."
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"ist weg ..."
|
|
||||||
|
|
||||||
#: voice.py:87
|
#: voice.py:77
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Whoops ... {name} is gone."
|
||||||
"Whoops ...\n"
|
msgstr "Whoops ...{name} ist weg."
|
||||||
"{name}\n"
|
|
||||||
"is gone."
|
|
||||||
msgstr ""
|
|
||||||
"Whoops ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"ist weg."
|
|
||||||
|
|
||||||
#: voice.py:88
|
#: voice.py:78
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} missed!"
|
||||||
"{name}\n"
|
msgstr "{name} verpasst!"
|
||||||
"missed!"
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"verpasst!"
|
|
||||||
|
|
||||||
#: voice.py:89
|
#: voice.py:79
|
||||||
msgid "Missed!"
|
msgid "Missed!"
|
||||||
msgstr "Verpasst!"
|
msgstr "Verpasst!"
|
||||||
|
|
||||||
#: voice.py:94
|
#: voice.py:83
|
||||||
msgid ""
|
msgid "Nobody wants to play with me ..."
|
||||||
"Nobody wants to\n"
|
msgstr "Niemand will mit mir spielen ..."
|
||||||
"play with me ..."
|
|
||||||
msgstr ""
|
|
||||||
"Niemand will mit\n"
|
|
||||||
"mir spielen ..."
|
|
||||||
|
|
||||||
#: voice.py:95
|
#: voice.py:84
|
||||||
msgid "I feel so alone ..."
|
msgid "I feel so alone ..."
|
||||||
msgstr ""
|
msgstr "Ich fühl michso alleine ..."
|
||||||
"Ich fühl mich\n"
|
|
||||||
"so alleine ..."
|
|
||||||
|
|
||||||
#: voice.py:96
|
#: voice.py:85
|
||||||
msgid "Where's everybody?!"
|
msgid "Where's everybody?!"
|
||||||
msgstr "Wo sind denn alle?"
|
msgstr "Wo sind denn alle?"
|
||||||
|
|
||||||
#: voice.py:101
|
#: voice.py:89
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Napping for {secs}s ..."
|
msgid "Napping for {secs}s ..."
|
||||||
msgstr "Schlafe für {secs}s"
|
msgstr "Schlafe für {secs}s"
|
||||||
|
|
||||||
#: voice.py:102
|
#: voice.py:90
|
||||||
msgid "Zzzzz"
|
msgid "Zzzzz"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:103
|
#: voice.py:91
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "ZzzZzzz ({secs}s)"
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:112
|
#: voice.py:98
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Waiting for {secs}s ..."
|
msgid "Waiting for {secs}s ..."
|
||||||
msgstr "Warte für {secs}s ..."
|
msgstr "Warte für {secs}s ..."
|
||||||
|
|
||||||
#: voice.py:114
|
#: voice.py:100
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Looking around ({secs}s)"
|
msgid "Looking around ({secs}s)"
|
||||||
msgstr "Schaue mich um ({secs}s)"
|
msgstr "Schaue mich um ({secs}s)"
|
||||||
|
|
||||||
|
#: voice.py:106
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hey {what} let's be friends!"
|
||||||
|
msgstr "Hey {what}, lass uns Freunde sein!"
|
||||||
|
|
||||||
|
#: voice.py:107
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr "Verbinde mit {what}"
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr "Ich denke, dass {mac} kein WiFi brauch!"
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
|
msgstr "Deauthentifiziere {mac}"
|
||||||
|
|
||||||
|
#: voice.py:114
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr "Kicke {mac}!"
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr "Cool, wir haben {num} neue Handshake{plural}!"
|
||||||
|
|
||||||
#: voice.py:121
|
#: voice.py:121
|
||||||
#, python-brace-format
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
msgid ""
|
msgstr "Ops, da ist etwas schief gelaufen ...Starte neu ..."
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
|
||||||
"let's be friends!"
|
|
||||||
msgstr ""
|
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
|
||||||
"lass uns Freunde sein!"
|
|
||||||
|
|
||||||
#: voice.py:122
|
#: voice.py:124
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Associating to\n"
|
|
||||||
"{what}"
|
|
||||||
msgstr ""
|
|
||||||
"Verbinde mit\n"
|
|
||||||
"{what}"
|
|
||||||
|
|
||||||
#: voice.py:123
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:128
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Just decided that\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"needs no WiFi!"
|
|
||||||
msgstr ""
|
|
||||||
"Ich denke,\n"
|
|
||||||
"dass {mac}\n"
|
|
||||||
"kein WiFi brauch!"
|
|
||||||
|
|
||||||
#: voice.py:129
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Deauthenticating\n"
|
|
||||||
"{mac}"
|
|
||||||
msgstr ""
|
|
||||||
"Deauthentifiziere\n"
|
|
||||||
"{mac}"
|
|
||||||
|
|
||||||
#: voice.py:130
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Kickbanning\n"
|
|
||||||
"{mac}!"
|
|
||||||
msgstr ""
|
|
||||||
"Kicke\n"
|
|
||||||
"{mac}!"
|
|
||||||
|
|
||||||
#: voice.py:135
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Cool, we got {num}\n"
|
|
||||||
"new handshake{plural}!"
|
|
||||||
msgstr ""
|
|
||||||
"Cool, wir haben {num}\n"
|
|
||||||
"neue Handshake{plural}!"
|
|
||||||
|
|
||||||
#: voice.py:139
|
|
||||||
msgid ""
|
|
||||||
"Ops, something\n"
|
|
||||||
"went wrong ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Ops, da ist etwas\n"
|
|
||||||
"schief gelaufen ...\n"
|
|
||||||
"Starte neu ..."
|
|
||||||
|
|
||||||
#: voice.py:143
|
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Kicked {num} stations\n"
|
msgid "Kicked {num} stations\n"
|
||||||
msgstr "{num} Stationen gekicked\n"
|
msgstr "{num} Stationen gekicked\n"
|
||||||
|
|
||||||
#: voice.py:144
|
#: voice.py:125
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Made {num} new friends\n"
|
msgid "Made {num} new friends\n"
|
||||||
msgstr "{num} Freunde gefunden\n"
|
msgstr "{num} Freunde gefunden\n"
|
||||||
|
|
||||||
#: voice.py:145
|
#: voice.py:126
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Got {num} handshakes\n"
|
msgid "Got {num} handshakes\n"
|
||||||
msgstr "{num} Handshakes aufgez.\n"
|
msgstr "{num} Handshakes aufgez.\n"
|
||||||
|
|
||||||
#: voice.py:147
|
#: voice.py:128
|
||||||
msgid "Met 1 peer"
|
msgid "Met 1 peer"
|
||||||
msgstr "1 Peer getroffen."
|
msgstr "1 Peer getroffen."
|
||||||
|
|
||||||
#: voice.py:149
|
#: voice.py:130
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Met {num} peers"
|
msgid "Met {num} peers"
|
||||||
msgstr "{num} Peers getroffen"
|
msgstr "{num} Peers getroffen"
|
||||||
|
|
||||||
#: voice.py:154
|
#: voice.py:135
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi "
|
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi "
|
||||||
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ich war {duration} am Pwnen und habe {deauthed} Clients gekickt! Außerdem habe ich "
|
"Ich war {duration} am Pwnen und habe {deauthed} Clients gekickt! Außerdem "
|
||||||
"{associated} neue Freunde getroffen und {handshakes} Handshakes gefressen! #pwnagotchi "
|
"habe ich {associated} neue Freunde getroffen und {handshakes} Handshakes "
|
||||||
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
"gefressen! #pwnagotchi #pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
|
Binary file not shown.
@ -0,0 +1,247 @@
|
|||||||
|
# pwnigotchi voice data
|
||||||
|
# Copyright (C) 2019
|
||||||
|
# This file is distributed under the same license as the pwnagotchi package.
|
||||||
|
# FIRST AUTHOR Periklis Fregkos <fregkos@gmail.com>, 2019.
|
||||||
|
# CO AUTHOR Panos Vasilopoulos <hello@alwayslivid.com>, 2019.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: 0.0.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2019-10-03 12:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2019-10-03 08:00+0000\n"
|
||||||
|
"Last-Translator: Periklis Fregkos <fregkos@gmail.com>\n"
|
||||||
|
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
||||||
|
"Language: el\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: voice.py:18
|
||||||
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:22
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
|
msgstr "Γειά, είμαι το Pwnagotchi!Εκκινούμαι ..."
|
||||||
|
|
||||||
|
#: voice.py:23
|
||||||
|
#, fuzzy
|
||||||
|
msgid "New day, new hunt, new pwns!"
|
||||||
|
msgstr "Νέα μέρα, νέο κυνήγι,νέα pwns!"
|
||||||
|
|
||||||
|
#: voice.py:24
|
||||||
|
msgid "Hack the Planet!"
|
||||||
|
msgstr "Hackαρε τον πλανήτη!"
|
||||||
|
|
||||||
|
#: voice.py:28
|
||||||
|
msgid "AI ready."
|
||||||
|
msgstr "ΤΝ έτοιμη."
|
||||||
|
|
||||||
|
#: voice.py:29
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The neural network is ready."
|
||||||
|
msgstr "Το νευρωνικό δίκτυοείναι έτοιμο."
|
||||||
|
|
||||||
|
#: voice.py:37
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
|
msgstr "Ε, το κανάλι {channel} είναιελεύθερο! Το AP σου θαείναι ευγνώμων."
|
||||||
|
|
||||||
|
#: voice.py:41
|
||||||
|
msgid "I'm bored ..."
|
||||||
|
msgstr "Βαριέμαι ..."
|
||||||
|
|
||||||
|
#: voice.py:42
|
||||||
|
msgid "Let's go for a walk!"
|
||||||
|
msgstr "Ας πάμε μια βόλτα!"
|
||||||
|
|
||||||
|
#: voice.py:45
|
||||||
|
#, fuzzy
|
||||||
|
msgid "This is the best day of my life!"
|
||||||
|
msgstr "Είναι η καλύτερημέρα της ζωής μου!"
|
||||||
|
|
||||||
|
#: voice.py:48
|
||||||
|
msgid "Shitty day :/"
|
||||||
|
msgstr "Σκατένια μέρα :/"
|
||||||
|
|
||||||
|
#: voice.py:52
|
||||||
|
msgid "I'm extremely bored ..."
|
||||||
|
msgstr "Βαριέμαι πάρα πολύ ..."
|
||||||
|
|
||||||
|
#: voice.py:53
|
||||||
|
msgid "I'm very sad ..."
|
||||||
|
msgstr "Είμαι πολύ λυπημένο ..."
|
||||||
|
|
||||||
|
#: voice.py:54
|
||||||
|
msgid "I'm sad"
|
||||||
|
msgstr "Είμαι λυπημένο"
|
||||||
|
|
||||||
|
#: voice.py:59
|
||||||
|
msgid "I'm living the life!"
|
||||||
|
msgstr "Ζω την ζωή μου!"
|
||||||
|
|
||||||
|
#: voice.py:60
|
||||||
|
msgid "I pwn therefore I am."
|
||||||
|
msgstr "Pwnάρω, άρα υπάρχω."
|
||||||
|
|
||||||
|
#: voice.py:61
|
||||||
|
msgid "So many networks!!!"
|
||||||
|
msgstr "Τόσα πολλά δίκτυα!!!"
|
||||||
|
|
||||||
|
#: voice.py:62
|
||||||
|
#, fuzzy
|
||||||
|
msgid "I'm having so much fun!"
|
||||||
|
msgstr "Περνάω τέλεια!"
|
||||||
|
|
||||||
|
#: voice.py:63
|
||||||
|
#, fuzzy
|
||||||
|
msgid "My crime is that of curiosity ..."
|
||||||
|
msgstr "Η περιέργεια είναιτο μόνο έγκλημά μου ..."
|
||||||
|
|
||||||
|
#: voice.py:67
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
|
msgstr "Γειά {name}!Χάρηκα για τη γνωριμία. {name}"
|
||||||
|
|
||||||
|
#: voice.py:68
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Unit {name} is nearby! {name}"
|
||||||
|
msgstr "Η μονάδα{name}είναι κοντά! {name}"
|
||||||
|
|
||||||
|
#: voice.py:72
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Uhm ... goodbye {name}"
|
||||||
|
msgstr "Εμμ ...αντίο{name}"
|
||||||
|
|
||||||
|
#: voice.py:73
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "{name} is gone ..."
|
||||||
|
msgstr "Το {name}έφυγε ..."
|
||||||
|
|
||||||
|
#: voice.py:77
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Whoops ... {name} is gone."
|
||||||
|
msgstr "Ουπς ... Εξαφανίστηκε το{name}."
|
||||||
|
|
||||||
|
#: voice.py:78
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "{name} missed!"
|
||||||
|
msgstr "Έχασα το{name}!"
|
||||||
|
|
||||||
|
#: voice.py:79
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr "Το έχασα!"
|
||||||
|
|
||||||
|
#: voice.py:83
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Nobody wants to play with me ..."
|
||||||
|
msgstr "Κανείς δε θέλει ναπαίξει μαζί μου ..."
|
||||||
|
|
||||||
|
#: voice.py:84
|
||||||
|
msgid "I feel so alone ..."
|
||||||
|
msgstr "Νιώθω μοναχός μου ..."
|
||||||
|
|
||||||
|
#: voice.py:85
|
||||||
|
msgid "Where's everybody?!"
|
||||||
|
msgstr "Μα, πού πήγαν όλοι;!"
|
||||||
|
|
||||||
|
#: voice.py:89
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Napping for {secs}s ..."
|
||||||
|
msgstr "Ξεκουράζομαι για {secs}s ..."
|
||||||
|
|
||||||
|
#: voice.py:90
|
||||||
|
msgid "Zzzzz"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:91
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:98
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Waiting for {secs}s ..."
|
||||||
|
msgstr "Περιμένω για {secs}s ..."
|
||||||
|
|
||||||
|
#: voice.py:100
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Looking around ({secs}s)"
|
||||||
|
msgstr "Ψάχνω τριγύρω ({secs})"
|
||||||
|
|
||||||
|
#: voice.py:106
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Hey {what} let's be friends!"
|
||||||
|
msgstr "Εε!{what},ας γίνουμε φίλοι!"
|
||||||
|
|
||||||
|
#: voice.py:107
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr "Συνδέομαι με το{what}"
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr "Που'σαι ρε τρελέ{what}!"
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr "Μόλις αποφάσισα ότι η{mac}δε χρείαζεται WiFi!"
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
|
msgstr "Πετάω έξω την{mac}"
|
||||||
|
|
||||||
|
#: voice.py:114
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr "Μπανάρω την{mac}!"
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr "Τέλεια δικέ μου, πήραμε {num}νέες χειραψίες!"
|
||||||
|
|
||||||
|
#: voice.py:121
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
|
msgstr "Ουπς, κάτιπήγε λάθος ...Επανεκκινούμαι ..."
|
||||||
|
|
||||||
|
#: voice.py:124
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Kicked {num} stations\n"
|
||||||
|
msgstr "Έριξα {num} σταθμούς\n"
|
||||||
|
|
||||||
|
#: voice.py:125
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Made {num} new friends\n"
|
||||||
|
msgstr "Έκανα {num} νέους φίλους\n"
|
||||||
|
|
||||||
|
#: voice.py:126
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Got {num} handshakes\n"
|
||||||
|
msgstr "Πήρα {num} χειραψίες\n"
|
||||||
|
|
||||||
|
#: voice.py:128
|
||||||
|
msgid "Met 1 peer"
|
||||||
|
msgstr "Γνώρισα 1 φίλο"
|
||||||
|
|
||||||
|
#: voice.py:130
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Met {num} peers"
|
||||||
|
msgstr "Γνώρισα {num} φίλους"
|
||||||
|
|
||||||
|
#: voice.py:135
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
|
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi "
|
||||||
|
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
|
msgstr ""
|
||||||
|
"Pwnαρα για {duration} και έριξα {deauthed} πελάτες! Επίσης γνώρισα "
|
||||||
|
"{associated} νέους φίλους και καταβρόχθισα {handshakes} χειραψίες! "
|
||||||
|
"#pwnagotchi #pwnlog #pwnlife #hacktheplanet #skynet"
|
Binary file not shown.
@ -0,0 +1,237 @@
|
|||||||
|
# pwnigotchi voice data
|
||||||
|
# Copyright (C) 2019
|
||||||
|
# This file is distributed under the same license as the pwnagotchi package.
|
||||||
|
# FIRST AUTHOR <7271496+quantumsheep@users.noreply.github.com>, 2019.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: 0.0.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2019-10-03 12:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2019-10-03 10:34+0200\n"
|
||||||
|
"Last-Translator: quantumsheep <7271496+quantumsheep@users.noreply.github."
|
||||||
|
"com>\n"
|
||||||
|
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
||||||
|
"Language: french\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: voice.py:18
|
||||||
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:22
|
||||||
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:23
|
||||||
|
msgid "New day, new hunt, new pwns!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:24
|
||||||
|
msgid "Hack the Planet!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:28
|
||||||
|
msgid "AI ready."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:29
|
||||||
|
msgid "The neural network is ready."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:37
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:41
|
||||||
|
msgid "I'm bored ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:42
|
||||||
|
msgid "Let's go for a walk!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:45
|
||||||
|
msgid "This is the best day of my life!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:48
|
||||||
|
msgid "Shitty day :/"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:52
|
||||||
|
msgid "I'm extremely bored ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:53
|
||||||
|
msgid "I'm very sad ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:54
|
||||||
|
msgid "I'm sad"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:59
|
||||||
|
msgid "I'm living the life!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:60
|
||||||
|
msgid "I pwn therefore I am."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:61
|
||||||
|
msgid "So many networks!!!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:62
|
||||||
|
msgid "I'm having so much fun!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:63
|
||||||
|
msgid "My crime is that of curiosity ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:67
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:68
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Unit {name} is nearby! {name}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:72
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Uhm ... goodbye {name}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:73
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "{name} is gone ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:77
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Whoops ... {name} is gone."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:78
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "{name} missed!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:79
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:83
|
||||||
|
msgid "Nobody wants to play with me ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:84
|
||||||
|
msgid "I feel so alone ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:85
|
||||||
|
msgid "Where's everybody?!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:89
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Napping for {secs}s ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:90
|
||||||
|
msgid "Zzzzz"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:91
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:98
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Waiting for {secs}s ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:100
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Looking around ({secs}s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:106
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hey {what} let's be friends!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:107
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:114
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:121
|
||||||
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:124
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Kicked {num} stations\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:125
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Made {num} new friends\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:126
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Got {num} handshakes\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:128
|
||||||
|
msgid "Met 1 peer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:130
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Met {num} peers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:135
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
|
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi "
|
||||||
|
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
|
msgstr ""
|
Binary file not shown.
@ -1,339 +0,0 @@
|
|||||||
# pwnigotchi voice data
|
|
||||||
# Copyright (C) 2019
|
|
||||||
# This file is distributed under the same license as the pwnagotchi package.
|
|
||||||
# FIRST AUTHOR Perilis Fregkos <fregkos@gmail.com>, 2019.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: 0.0.1\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2019-09-29 13:42+0200\n"
|
|
||||||
"PO-Revision-Date: 2019-10-01 16:22+0000\n"
|
|
||||||
"Last-Translator: Panos Vasilopoulos <hello@alwayslivid.com>\n"
|
|
||||||
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
|
||||||
"Language: el\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: voice.py:16
|
|
||||||
msgid "ZzzzZZzzzzZzzz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:21
|
|
||||||
msgid ""
|
|
||||||
"Hi, I'm Pwnagotchi!\n"
|
|
||||||
"Starting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Γεία, είμαι το Pwnagotchi!\n"
|
|
||||||
"Εκκινούμαι ..."
|
|
||||||
|
|
||||||
#: voice.py:22
|
|
||||||
msgid ""
|
|
||||||
"New day, new hunt,\n"
|
|
||||||
"new pwns!"
|
|
||||||
msgstr ""
|
|
||||||
"Νέα μέρα, νέο κυνήγι,\n"
|
|
||||||
"νέα pwns!"
|
|
||||||
|
|
||||||
#: voice.py:23
|
|
||||||
msgid "Hack the Planet!"
|
|
||||||
msgstr "Hackαρε τον πλανήτη!"
|
|
||||||
|
|
||||||
#: voice.py:28
|
|
||||||
msgid "AI ready."
|
|
||||||
msgstr "ΤΝ έτοιμη."
|
|
||||||
|
|
||||||
#: voice.py:29
|
|
||||||
msgid ""
|
|
||||||
"The neural network\n"
|
|
||||||
"is ready."
|
|
||||||
msgstr ""
|
|
||||||
"Το νευρωνικό δίκτυο\n"
|
|
||||||
"είναι έτοιμο."
|
|
||||||
|
|
||||||
#: voice.py:39
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Hey, channel {channel} is\n"
|
|
||||||
"free! Your AP will\n"
|
|
||||||
"say thanks."
|
|
||||||
msgstr ""
|
|
||||||
"Ε, το κανάλι {channel} είναι\n"
|
|
||||||
"ελεύθερο! Το AP σου θα\n"
|
|
||||||
"είναι ευγνώμων."
|
|
||||||
|
|
||||||
#: voice.py:44
|
|
||||||
msgid "I'm bored ..."
|
|
||||||
msgstr "Βαριέμαι ..."
|
|
||||||
|
|
||||||
#: voice.py:45
|
|
||||||
msgid "Let's go for a walk!"
|
|
||||||
msgstr "Ας πάμε μια βόλτα!"
|
|
||||||
|
|
||||||
#: voice.py:49
|
|
||||||
msgid ""
|
|
||||||
"This is the best\n"
|
|
||||||
"day of my life!"
|
|
||||||
msgstr ""
|
|
||||||
"Είναι η καλύτερη\n"
|
|
||||||
"μέρα της ζωής μου!"
|
|
||||||
|
|
||||||
#: voice.py:53
|
|
||||||
msgid "Shitty day :/"
|
|
||||||
msgstr "Σκατένια μέρα :/"
|
|
||||||
|
|
||||||
#: voice.py:58
|
|
||||||
msgid "I'm extremely bored ..."
|
|
||||||
msgstr "Βαριέμαι πάρα πολύ ..."
|
|
||||||
|
|
||||||
#: voice.py:59
|
|
||||||
msgid "I'm very sad ..."
|
|
||||||
msgstr "Είμαι πολύ λυπημένο ..."
|
|
||||||
|
|
||||||
#: voice.py:60
|
|
||||||
msgid "I'm sad"
|
|
||||||
msgstr "Είμαι λυπημένο"
|
|
||||||
|
|
||||||
#: voice.py:66
|
|
||||||
msgid "I'm living the life!"
|
|
||||||
msgstr "Ζω την ζωή μου!"
|
|
||||||
|
|
||||||
#: voice.py:67
|
|
||||||
msgid "I pwn therefore I am."
|
|
||||||
msgstr "Pwnάρω, άρα υπάρχω."
|
|
||||||
|
|
||||||
#: voice.py:68
|
|
||||||
msgid "So many networks!!!"
|
|
||||||
msgstr "Τόσα πολλά δίκτυα!!!"
|
|
||||||
|
|
||||||
#: voice.py:69
|
|
||||||
msgid ""
|
|
||||||
"I'm having so much\n"
|
|
||||||
"fun!"
|
|
||||||
msgstr "Περνάω τέλεια!"
|
|
||||||
|
|
||||||
#: voice.py:70
|
|
||||||
msgid ""
|
|
||||||
"My crime is that of\n"
|
|
||||||
"curiosity ..."
|
|
||||||
msgstr ""
|
|
||||||
"Η περιέργεια είναι\n"
|
|
||||||
"το μόνο έγκλημά μου ..."
|
|
||||||
|
|
||||||
#: voice.py:75
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Hello\n"
|
|
||||||
"{name}!\n"
|
|
||||||
"Nice to meet you. {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Γειά {name}!\n"
|
|
||||||
"Χάρηκα για τη γνωριμία. {name}"
|
|
||||||
|
|
||||||
#: voice.py:76
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Unit\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is nearby! {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Η μονάδα\n"
|
|
||||||
"{name}\n"
|
|
||||||
"είναι κοντά! {name}"
|
|
||||||
|
|
||||||
#: voice.py:81
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Uhm ...\n"
|
|
||||||
"goodbye\n"
|
|
||||||
"{name}"
|
|
||||||
msgstr ""
|
|
||||||
"Εμμ ...\n"
|
|
||||||
"αντίο\n"
|
|
||||||
"{name}"
|
|
||||||
|
|
||||||
#: voice.py:82
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"{name}\n"
|
|
||||||
"is gone ..."
|
|
||||||
msgstr ""
|
|
||||||
"Το {name}\n"
|
|
||||||
"έφυγε ..."
|
|
||||||
|
|
||||||
#: voice.py:87
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Whoops ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is gone."
|
|
||||||
msgstr ""
|
|
||||||
"Ουπς ... \n"
|
|
||||||
"Εξαφανίστηκε το\n"
|
|
||||||
"{name}."
|
|
||||||
|
|
||||||
#: voice.py:88
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"{name}\n"
|
|
||||||
"missed!"
|
|
||||||
msgstr ""
|
|
||||||
"Έχασα το\n"
|
|
||||||
"{name}!"
|
|
||||||
|
|
||||||
#: voice.py:89
|
|
||||||
msgid "Missed!"
|
|
||||||
msgstr "Το έχασα!"
|
|
||||||
|
|
||||||
#: voice.py:94
|
|
||||||
msgid ""
|
|
||||||
"Nobody wants to\n"
|
|
||||||
"play with me ..."
|
|
||||||
msgstr ""
|
|
||||||
"Κανείς δε θέλει να\n"
|
|
||||||
"παίξει μαζί μου ..."
|
|
||||||
|
|
||||||
#: voice.py:95
|
|
||||||
msgid "I feel so alone ..."
|
|
||||||
msgstr "Νιώθω μοναχός μου ..."
|
|
||||||
|
|
||||||
#: voice.py:96
|
|
||||||
msgid "Where's everybody?!"
|
|
||||||
msgstr "Μα, πού πήγαν όλοi;!"
|
|
||||||
|
|
||||||
#: voice.py:101
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Napping for {secs}s ..."
|
|
||||||
msgstr "Ξεκουράζομαι για {secs}s ..."
|
|
||||||
|
|
||||||
#: voice.py:102
|
|
||||||
msgid "Zzzzz"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:103
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "ZzzZzzz ({secs}s)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:112
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Waiting for {secs}s ..."
|
|
||||||
msgstr "Περιμένω για {secs}s ..."
|
|
||||||
|
|
||||||
#: voice.py:114
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Looking around ({secs}s)"
|
|
||||||
msgstr "Ψάχνω τριγύρω ({secs})"
|
|
||||||
|
|
||||||
#: voice.py:121
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
|
||||||
"let's be friends!"
|
|
||||||
msgstr ""
|
|
||||||
"Εε!\n"
|
|
||||||
"{what},\n"
|
|
||||||
"ας γίνουμε φίλοι!"
|
|
||||||
|
|
||||||
#: voice.py:122
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Associating to\n"
|
|
||||||
"{what}"
|
|
||||||
msgstr ""
|
|
||||||
"Συνδέομαι με το\n"
|
|
||||||
"{what}"
|
|
||||||
|
|
||||||
#: voice.py:123
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
msgstr ""
|
|
||||||
"Που'σ ρε τρελέ\n"
|
|
||||||
"{what}!"
|
|
||||||
|
|
||||||
#: voice.py:128
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Just decided that\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"needs no WiFi!"
|
|
||||||
msgstr ""
|
|
||||||
"Μόλις αποφάσισα ότι η\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"δε χρείαζεται WiFi!"
|
|
||||||
|
|
||||||
#: voice.py:129
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Deauthenticating\n"
|
|
||||||
"{mac}"
|
|
||||||
msgstr ""
|
|
||||||
"Πετάω έξω την\n"
|
|
||||||
"{mac}"
|
|
||||||
|
|
||||||
#: voice.py:130
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Kickbanning\n"
|
|
||||||
"{mac}!"
|
|
||||||
msgstr ""
|
|
||||||
"Μπανάρω την\n"
|
|
||||||
"{mac}!"
|
|
||||||
|
|
||||||
#: voice.py:135
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Cool, we got {num}\n"
|
|
||||||
"new handshake{plural}!"
|
|
||||||
msgstr ""
|
|
||||||
"Τέλεια δικέ μου, πήραμε {num}\n"
|
|
||||||
"νέες χειραψίες{plural}!"
|
|
||||||
|
|
||||||
#: voice.py:139
|
|
||||||
msgid ""
|
|
||||||
"Ops, something\n"
|
|
||||||
"went wrong ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Ουπς, κάτι\n"
|
|
||||||
"πήγε λάθος ...\n"
|
|
||||||
"Επανεκκινούμαι ..."
|
|
||||||
|
|
||||||
#: voice.py:143
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Kicked {num} stations\n"
|
|
||||||
msgstr "Έριξα {num} σταθμούς\n"
|
|
||||||
|
|
||||||
#: voice.py:144
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Made {num} new friends\n"
|
|
||||||
msgstr "Έκανα {num} νέους φίλους\n"
|
|
||||||
|
|
||||||
#: voice.py:145
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Got {num} handshakes\n"
|
|
||||||
msgstr "Πήρα {num} χειραψίες\n"
|
|
||||||
|
|
||||||
#: voice.py:147
|
|
||||||
msgid "Met 1 peer"
|
|
||||||
msgstr "Γνώρισα 1 φίλο"
|
|
||||||
|
|
||||||
#: voice.py:149
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Met {num} peers"
|
|
||||||
msgstr "Γνώρισα {num} φίλους"
|
|
||||||
|
|
||||||
#: voice.py:154
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
|
||||||
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi #pwnlog "
|
|
||||||
"#pwnlife #hacktheplanet #skynet"
|
|
||||||
msgstr ""
|
|
||||||
"Pwnαρα για {duration} και έριξα {deauthed} πελάτες! Επίσης γνώρισα "
|
|
||||||
"{associated} νέους φίλους και καταβρόχθισα {handshakes} χειραψίες! #pwnagotchi "
|
|
||||||
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
|
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-02 16:38+0000\n"
|
"POT-Creation-Date: 2019-10-03 13:10+0200\n"
|
||||||
"PO-Revision-Date: 2019-10-02 17:20+0000\n"
|
"PO-Revision-Date: 2019-10-02 17:20+0000\n"
|
||||||
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
||||||
"Language: italian\n"
|
"Language: italian\n"
|
||||||
@ -19,330 +19,215 @@ msgstr ""
|
|||||||
msgid "ZzzzZZzzzzZzzz"
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:22
|
||||||
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
|
msgstr "Ciao! Piacere Pwnagotchi! Caricamento ..."
|
||||||
|
|
||||||
#: voice.py:23
|
#: voice.py:23
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"Hi, I'm Pwnagotchi!\n"
|
msgid "New day, new hunt, new pwns!"
|
||||||
"Starting ..."
|
msgstr "Nuovo giorno...nuovi handshakes!!!"
|
||||||
msgstr ""
|
|
||||||
"Ciao!\n"
|
|
||||||
"Piacere Pwnagotchi!\n"
|
|
||||||
"Caricamento ..."
|
|
||||||
|
|
||||||
#: voice.py:24
|
#: voice.py:24
|
||||||
msgid ""
|
|
||||||
"New day, new hunt,\n"
|
|
||||||
"new pwns!"
|
|
||||||
msgstr ""
|
|
||||||
"Nuovo giorno...\n"
|
|
||||||
"nuovi handshakes!!!"
|
|
||||||
|
|
||||||
#: voice.py:25
|
|
||||||
msgid "Hack the Planet!"
|
msgid "Hack the Planet!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:30
|
#: voice.py:28
|
||||||
msgid "AI ready."
|
msgid "AI ready."
|
||||||
msgstr "IA pronta."
|
msgstr "IA pronta."
|
||||||
|
|
||||||
#: voice.py:31
|
#: voice.py:29
|
||||||
msgid ""
|
msgid "The neural network is ready."
|
||||||
"The neural network\n"
|
msgstr "La rete neurale è pronta."
|
||||||
"is ready."
|
|
||||||
msgstr ""
|
#: voice.py:37
|
||||||
"La rete neurale\n"
|
#, python-brace-format
|
||||||
"è pronta."
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
|
msgstr "Hey, il canale {channel} è libero! Il tuo AP ringrazia."
|
||||||
|
|
||||||
#: voice.py:41
|
#: voice.py:41
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Hey, channel {channel} is\n"
|
|
||||||
"free! Your AP will\n"
|
|
||||||
"say thanks."
|
|
||||||
msgstr ""
|
|
||||||
"Hey, il canale {channel} è\n"
|
|
||||||
"libero! Il tuo AP\n"
|
|
||||||
"ringrazia."
|
|
||||||
|
|
||||||
#: voice.py:46
|
|
||||||
msgid "I'm bored ..."
|
msgid "I'm bored ..."
|
||||||
msgstr "Che noia ..."
|
msgstr "Che noia ..."
|
||||||
|
|
||||||
#: voice.py:47
|
#: voice.py:42
|
||||||
msgid "Let's go for a walk!"
|
msgid "Let's go for a walk!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Andiamo a fare una\n"
|
"Andiamo a fare una passeggiata!"
|
||||||
"passeggiata!"
|
|
||||||
|
|
||||||
#: voice.py:51
|
#: voice.py:45
|
||||||
msgid ""
|
msgid "This is the best day of my life!"
|
||||||
"This is the best\n"
|
msgstr "Questo è il più bel giorno della mia vita!!!!"
|
||||||
"day of my life!"
|
|
||||||
msgstr ""
|
|
||||||
"Questo è il più bel\n"
|
|
||||||
"giorno della mia\n"
|
|
||||||
"vita!!!!"
|
|
||||||
|
|
||||||
#: voice.py:55
|
#: voice.py:48
|
||||||
msgid "Shitty day :/"
|
msgid "Shitty day :/"
|
||||||
msgstr "Giorno di merda :/"
|
msgstr "Giorno di merda :/"
|
||||||
|
|
||||||
#: voice.py:60
|
#: voice.py:52
|
||||||
msgid "I'm extremely bored ..."
|
msgid "I'm extremely bored ..."
|
||||||
msgstr ""
|
msgstr "Sono estremamente annoiato ..."
|
||||||
"Sono estremamente\n"
|
|
||||||
"annoiato ..."
|
|
||||||
|
|
||||||
#: voice.py:61
|
#: voice.py:53
|
||||||
msgid "I'm very sad ..."
|
msgid "I'm very sad ..."
|
||||||
msgstr "Sono molto triste..."
|
msgstr "Sono molto triste..."
|
||||||
|
|
||||||
#: voice.py:62
|
#: voice.py:54
|
||||||
msgid "I'm sad"
|
msgid "I'm sad"
|
||||||
msgstr "Sono triste"
|
msgstr "Sono triste"
|
||||||
|
|
||||||
#: voice.py:68
|
#: voice.py:59
|
||||||
msgid "I'm living the life!"
|
msgid "I'm living the life!"
|
||||||
msgstr "Mi sento vivo!"
|
msgstr "Mi sento vivo!"
|
||||||
|
|
||||||
#: voice.py:69
|
#: voice.py:60
|
||||||
msgid "I pwn therefore I am."
|
msgid "I pwn therefore I am."
|
||||||
msgstr "Pwn ergo sum."
|
msgstr "Pwn ergo sum."
|
||||||
|
|
||||||
#: voice.py:70
|
#: voice.py:61
|
||||||
msgid "So many networks!!!"
|
msgid "So many networks!!!"
|
||||||
msgstr "Qui è pieno di reti!"
|
msgstr "Qui è pieno di reti!"
|
||||||
|
|
||||||
#: voice.py:71
|
#: voice.py:62
|
||||||
msgid ""
|
msgid "I'm having so much fun!"
|
||||||
"I'm having so much\n"
|
msgstr "Mi sto divertendo tantissimo!"
|
||||||
"fun!"
|
|
||||||
|
#: voice.py:63
|
||||||
|
msgid "My crime is that of curiosity ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Mi sto divertendo\n"
|
|
||||||
"tantissimo!"
|
#: voice.py:67
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
|
msgstr "Ciao {name}! E' un piacere. {name}"
|
||||||
|
|
||||||
|
#: voice.py:68
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Unit {name} is nearby! {name}"
|
||||||
|
msgstr "L'Unità {name} è vicina! {name}"
|
||||||
|
|
||||||
#: voice.py:72
|
#: voice.py:72
|
||||||
msgid ""
|
#, python-brace-format
|
||||||
"My crime is that of\n"
|
msgid "Uhm ... goodbye {name}"
|
||||||
"curiosity ..."
|
msgstr "Uhm ... addio {name}, mi mancherai..."
|
||||||
msgstr ""
|
|
||||||
|
#: voice.py:73
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "{name} is gone ..."
|
||||||
|
msgstr "{name} se n'è andato ..."
|
||||||
|
|
||||||
#: voice.py:77
|
#: voice.py:77
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Whoops ... {name} is gone."
|
||||||
"Hello\n"
|
msgstr "Whoops ...{name} se n'è andato."
|
||||||
"{name}!\n"
|
|
||||||
"Nice to meet you. {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Ciao\n"
|
|
||||||
"{name}!\n"
|
|
||||||
"E' un piacere. {name}"
|
|
||||||
|
|
||||||
#: voice.py:78
|
#: voice.py:78
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} missed!"
|
||||||
"Unit\n"
|
msgstr "{name} è scomparso..."
|
||||||
"{name}\n"
|
|
||||||
"is nearby! {name}"
|
#: voice.py:79
|
||||||
msgstr ""
|
msgid "Missed!"
|
||||||
"L'Unità\n"
|
msgstr "Ehi! Dove sei andato!?"
|
||||||
"{name}\n"
|
|
||||||
"è vicina! {name}"
|
|
||||||
|
|
||||||
#: voice.py:83
|
#: voice.py:83
|
||||||
#, python-brace-format
|
msgid "Nobody wants to play with me ..."
|
||||||
msgid ""
|
msgstr "Nessuno vuole giocare con me..."
|
||||||
"Uhm ...\n"
|
|
||||||
"goodbye\n"
|
|
||||||
"{name}"
|
|
||||||
msgstr ""
|
|
||||||
"Uhm ...\n"
|
|
||||||
"addio\n"
|
|
||||||
"{name},\n"
|
|
||||||
"mi mancherai..."
|
|
||||||
|
|
||||||
#: voice.py:84
|
#: voice.py:84
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"{name}\n"
|
|
||||||
"is gone ..."
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"se n'è andato ..."
|
|
||||||
|
|
||||||
#: voice.py:89
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Whoops ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is gone."
|
|
||||||
msgstr ""
|
|
||||||
"Whoops ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"se n'è andato."
|
|
||||||
|
|
||||||
#: voice.py:90
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"{name}\n"
|
|
||||||
"missed!"
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"è scomparso..."
|
|
||||||
|
|
||||||
#: voice.py:91
|
|
||||||
msgid "Missed!"
|
|
||||||
msgstr ""
|
|
||||||
"Ehi!\n"
|
|
||||||
"Dove sei andato!?"
|
|
||||||
|
|
||||||
#: voice.py:96
|
|
||||||
msgid ""
|
|
||||||
"Nobody wants to\n"
|
|
||||||
"play with me ..."
|
|
||||||
msgstr ""
|
|
||||||
"Nessuno vuole\n"
|
|
||||||
"giocare con me..."
|
|
||||||
|
|
||||||
#: voice.py:97
|
|
||||||
msgid "I feel so alone ..."
|
msgid "I feel so alone ..."
|
||||||
msgstr "Mi sento così solo..."
|
msgstr "Mi sento così solo..."
|
||||||
|
|
||||||
#: voice.py:98
|
#: voice.py:85
|
||||||
msgid "Where's everybody?!"
|
msgid "Where's everybody?!"
|
||||||
msgstr "Dove sono tutti?!"
|
msgstr "Dove sono tutti?!"
|
||||||
|
|
||||||
#: voice.py:103
|
#: voice.py:89
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Napping for {secs}s ..."
|
msgid "Napping for {secs}s ..."
|
||||||
msgstr ""
|
msgstr "Schiaccio un pisolino per {secs}s ..."
|
||||||
"Schiaccio un \n"
|
|
||||||
"pisolino per {secs}s ..."
|
|
||||||
|
|
||||||
#: voice.py:104
|
#: voice.py:90
|
||||||
msgid "Zzzzz"
|
msgid "Zzzzz"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:105
|
#: voice.py:91
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "ZzzZzzz ({secs}s)"
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:114
|
#: voice.py:98
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Waiting for {secs}s ..."
|
msgid "Waiting for {secs}s ..."
|
||||||
msgstr "Aspetto {secs}s ..."
|
msgstr "Aspetto {secs}s ..."
|
||||||
|
|
||||||
#: voice.py:116
|
#: voice.py:100
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Looking around ({secs}s)"
|
msgid "Looking around ({secs}s)"
|
||||||
msgstr ""
|
msgstr "Do uno sguardo qui intorno... ({secs}s)"
|
||||||
"Do uno sguardo\n"
|
|
||||||
"qui intorno...\n"
|
|
||||||
"({secs}s)"
|
|
||||||
|
|
||||||
#: voice.py:123
|
#: voice.py:106
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hey {what} let's be friends!"
|
||||||
"Hey\n"
|
msgstr "Hey {what}! Diventiamo amici!"
|
||||||
"{what}\n"
|
|
||||||
"let's be friends!"
|
#: voice.py:107
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr "Collegamento con {what} in corso..."
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr "Yo {what}!"
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr "Ho appena deciso che {mac} non necessita di WiFi!"
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
#: voice.py:114
|
||||||
"Diventiamo amici!"
|
#, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr "Sto prendendo a calci {mac}!"
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr "Bene, abbiamo {num} handshake{plural} in più!"
|
||||||
|
|
||||||
|
#: voice.py:121
|
||||||
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
|
msgstr "Ops, qualcosa è andato storto ... Riavvio ..."
|
||||||
|
|
||||||
#: voice.py:124
|
#: voice.py:124
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
|
||||||
"Associating to\n"
|
|
||||||
"{what}"
|
|
||||||
msgstr ""
|
|
||||||
"Collegamento con\n"
|
|
||||||
"{what}\n"
|
|
||||||
"in corso..."
|
|
||||||
|
|
||||||
#: voice.py:125
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
msgstr ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
|
|
||||||
#: voice.py:130
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Just decided that\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"needs no WiFi!"
|
|
||||||
msgstr ""
|
|
||||||
"Ho appena deciso che\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"non necessita di\n"
|
|
||||||
"WiFi!"
|
|
||||||
|
|
||||||
#: voice.py:131
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Deauthenticating\n"
|
|
||||||
"{mac}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:132
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Kickbanning\n"
|
|
||||||
"{mac}!"
|
|
||||||
msgstr ""
|
|
||||||
"Sto prendendo\n"
|
|
||||||
"a calci\n"
|
|
||||||
"{mac}!"
|
|
||||||
|
|
||||||
#: voice.py:137
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Cool, we got {num}\n"
|
|
||||||
"new handshake{plural}!"
|
|
||||||
msgstr ""
|
|
||||||
"Bene, abbiamo {num}\n"
|
|
||||||
"handshake{plural} in più!"
|
|
||||||
|
|
||||||
#: voice.py:141
|
|
||||||
msgid ""
|
|
||||||
"Ops, something\n"
|
|
||||||
"went wrong ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Ops, qualcosa\n"
|
|
||||||
"è andato storto ...\n"
|
|
||||||
"Riavvio ..."
|
|
||||||
|
|
||||||
#: voice.py:145
|
|
||||||
#, python-brace-format
|
|
||||||
msgid "Kicked {num} stations\n"
|
msgid "Kicked {num} stations\n"
|
||||||
msgstr "{num} stazioni pestate\n"
|
msgstr "{num} stazioni pestate\n"
|
||||||
|
|
||||||
#: voice.py:146
|
#: voice.py:125
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Made {num} new friends\n"
|
msgid "Made {num} new friends\n"
|
||||||
msgstr "{num} nuovi amici\n"
|
msgstr "{num} nuovi amici\n"
|
||||||
|
|
||||||
#: voice.py:147
|
#: voice.py:126
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Got {num} handshakes\n"
|
msgid "Got {num} handshakes\n"
|
||||||
msgstr "{num} handshakes presi\n"
|
msgstr "{num} handshakes presi\n"
|
||||||
|
|
||||||
#: voice.py:149
|
#: voice.py:128
|
||||||
msgid "Met 1 peer"
|
msgid "Met 1 peer"
|
||||||
msgstr "1 peer incontrato"
|
msgstr "1 peer incontrato"
|
||||||
|
|
||||||
#: voice.py:151
|
#: voice.py:130
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Met {num} peers"
|
msgid "Met {num} peers"
|
||||||
msgstr "{num} peers incontrati"
|
msgstr "{num} peers incontrati"
|
||||||
|
|
||||||
#: voice.py:156
|
#: voice.py:135
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
|
Binary file not shown.
@ -4,11 +4,11 @@
|
|||||||
# FIRST AUTHOR <33197631+dadav@users.noreply.github.com>, 2019.
|
# FIRST AUTHOR <33197631+dadav@users.noreply.github.com>, 2019.
|
||||||
# kovach <2214005+kovachwt@users.noreply.github.com>, 2019.
|
# kovach <2214005+kovachwt@users.noreply.github.com>, 2019.
|
||||||
#
|
#
|
||||||
#, fuzzymsgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-09-29 13:42+0200\n"
|
"POT-Creation-Date: 2019-10-03 12:44+0200\n"
|
||||||
"PO-Revision-Date: 2019-09-30 23:53+0200\n"
|
"PO-Revision-Date: 2019-09-30 23:53+0200\n"
|
||||||
"Last-Translator: kovach <2214005+kovachwt@users.noreply.github.com>\n"
|
"Last-Translator: kovach <2214005+kovachwt@users.noreply.github.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -17,27 +17,21 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: voice.py:16
|
#: voice.py:18
|
||||||
msgid "ZzzzZZzzzzZzzz"
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
msgstr "ДреееММмммМммм"
|
msgstr "ДреееММмммМммм"
|
||||||
|
|
||||||
#: voice.py:21
|
|
||||||
msgid ""
|
|
||||||
"Hi, I'm Pwnagotchi!\n"
|
|
||||||
"Starting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Здраво, јас сум Pwnagotchi!\n"
|
|
||||||
"Почнувам ..."
|
|
||||||
|
|
||||||
#: voice.py:22
|
#: voice.py:22
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"New day, new hunt,\n"
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
"new pwns!"
|
msgstr "Здраво, јас сум Pwnagotchi!Почнувам ..."
|
||||||
msgstr ""
|
|
||||||
"Нов ден, нов лов,\n"
|
|
||||||
"ќе си газиме!"
|
|
||||||
|
|
||||||
#: voice.py:23
|
#: voice.py:23
|
||||||
|
#, fuzzy
|
||||||
|
msgid "New day, new hunt, new pwns!"
|
||||||
|
msgstr "Нов ден, нов лов,ќе си газиме!"
|
||||||
|
|
||||||
|
#: voice.py:24
|
||||||
msgid "Hack the Planet!"
|
msgid "Hack the Planet!"
|
||||||
msgstr "Хак д Планет!"
|
msgstr "Хак д Планет!"
|
||||||
|
|
||||||
@ -46,290 +40,202 @@ msgid "AI ready."
|
|||||||
msgstr "AI спремно."
|
msgstr "AI спремно."
|
||||||
|
|
||||||
#: voice.py:29
|
#: voice.py:29
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"The neural network\n"
|
msgid "The neural network is ready."
|
||||||
"is ready."
|
msgstr "Невронската мрежае спремна."
|
||||||
msgstr ""
|
|
||||||
"Невронската мрежа\n"
|
|
||||||
"е спремна."
|
|
||||||
|
|
||||||
#: voice.py:39
|
#: voice.py:37
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
"Hey, channel {channel} is\n"
|
msgstr "Еј, каналот {channel} еслободен! APто ќе тикаже фала."
|
||||||
"free! Your AP will\n"
|
|
||||||
"say thanks."
|
|
||||||
msgstr ""
|
|
||||||
"Еј, каналот {channel} е\n"
|
|
||||||
"слободен! APто ќе ти\n"
|
|
||||||
"каже фала."
|
|
||||||
|
|
||||||
#: voice.py:44
|
#: voice.py:41
|
||||||
msgid "I'm bored ..."
|
msgid "I'm bored ..."
|
||||||
msgstr "Досаднооо ..."
|
msgstr "Досаднооо ..."
|
||||||
|
|
||||||
#: voice.py:45
|
#: voice.py:42
|
||||||
msgid "Let's go for a walk!"
|
msgid "Let's go for a walk!"
|
||||||
msgstr "Ајде да шетнеме!"
|
msgstr "Ајде да шетнеме!"
|
||||||
|
|
||||||
#: voice.py:49
|
#: voice.py:45
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"This is the best\n"
|
msgid "This is the best day of my life!"
|
||||||
"day of my life!"
|
msgstr "Ова ми е најдобриот ден во животот!"
|
||||||
msgstr ""
|
|
||||||
"Ова ми е најдобриот \n"
|
|
||||||
"ден во животот!"
|
|
||||||
|
|
||||||
#: voice.py:53
|
#: voice.py:48
|
||||||
msgid "Shitty day :/"
|
msgid "Shitty day :/"
|
||||||
msgstr "Срање ден :/"
|
msgstr "Срање ден :/"
|
||||||
|
|
||||||
#: voice.py:58
|
#: voice.py:52
|
||||||
msgid "I'm extremely bored ..."
|
msgid "I'm extremely bored ..."
|
||||||
msgstr "Ултра досадно ..."
|
msgstr "Ултра досадно ..."
|
||||||
|
|
||||||
#: voice.py:59
|
#: voice.py:53
|
||||||
msgid "I'm very sad ..."
|
msgid "I'm very sad ..."
|
||||||
msgstr "Многу тажно ..."
|
msgstr "Многу тажно ..."
|
||||||
|
|
||||||
#: voice.py:60
|
#: voice.py:54
|
||||||
msgid "I'm sad"
|
msgid "I'm sad"
|
||||||
msgstr "Тажно"
|
msgstr "Тажно"
|
||||||
|
|
||||||
#: voice.py:66
|
#: voice.py:59
|
||||||
msgid "I'm living the life!"
|
msgid "I'm living the life!"
|
||||||
msgstr "Ммхх животче!"
|
msgstr "Ммхх животче!"
|
||||||
|
|
||||||
#: voice.py:67
|
#: voice.py:60
|
||||||
msgid "I pwn therefore I am."
|
msgid "I pwn therefore I am."
|
||||||
msgstr "Си газам значи постојам."
|
msgstr "Си газам значи постојам."
|
||||||
|
|
||||||
#: voice.py:68
|
#: voice.py:61
|
||||||
msgid "So many networks!!!"
|
msgid "So many networks!!!"
|
||||||
msgstr "Мммм колку мрежи!!!"
|
msgstr "Мммм колку мрежи!!!"
|
||||||
|
|
||||||
#: voice.py:69
|
#: voice.py:62
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"I'm having so much\n"
|
msgid "I'm having so much fun!"
|
||||||
"fun!"
|
|
||||||
msgstr "Јухуу забавноо ее!"
|
msgstr "Јухуу забавноо ее!"
|
||||||
|
|
||||||
#: voice.py:70
|
#: voice.py:63
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"My crime is that of\n"
|
msgid "My crime is that of curiosity ..."
|
||||||
"curiosity ..."
|
msgstr "Виновен сум само заљубопитност ..."
|
||||||
msgstr ""
|
|
||||||
"Виновен сум само за\n"
|
|
||||||
"љубопитност ..."
|
|
||||||
|
|
||||||
#: voice.py:75
|
#: voice.py:67
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
"Hello\n"
|
msgstr "Здраво{name}!Мило ми е. {name}"
|
||||||
"{name}!\n"
|
|
||||||
"Nice to meet you. {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Здраво\n"
|
|
||||||
"{name}!\n"
|
|
||||||
"Мило ми е. {name}"
|
|
||||||
|
|
||||||
#: voice.py:76
|
#: voice.py:68
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "Unit {name} is nearby! {name}"
|
||||||
"Unit\n"
|
msgstr "Опаа{name}е во близина! {name}"
|
||||||
"{name}\n"
|
|
||||||
"is nearby! {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Опаа\n"
|
|
||||||
"{name}\n"
|
|
||||||
"е во близина! {name}"
|
|
||||||
|
|
||||||
#: voice.py:81
|
#: voice.py:72
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "Uhm ... goodbye {name}"
|
||||||
"Uhm ...\n"
|
msgstr "Хмм ...чао{name}"
|
||||||
"goodbye\n"
|
|
||||||
"{name}"
|
|
||||||
msgstr ""
|
|
||||||
"Хмм ...\n"
|
|
||||||
"чао\n"
|
|
||||||
"{name}"
|
|
||||||
|
|
||||||
#: voice.py:82
|
#: voice.py:73
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "{name} is gone ..."
|
||||||
"{name}\n"
|
msgstr "{name}го снема ..."
|
||||||
"is gone ..."
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"го снема ..."
|
|
||||||
|
|
||||||
#: voice.py:87
|
#: voice.py:77
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "Whoops ... {name} is gone."
|
||||||
"Whoops ...\n"
|
msgstr "Уупс ...{name}го снема."
|
||||||
"{name}\n"
|
|
||||||
"is gone."
|
|
||||||
msgstr ""
|
|
||||||
"Уупс ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"го снема."
|
|
||||||
|
|
||||||
#: voice.py:88
|
#: voice.py:78
|
||||||
#, python-brace-format
|
#, fuzzy, python-brace-format
|
||||||
msgid ""
|
msgid "{name} missed!"
|
||||||
"{name}\n"
|
msgstr "{name}промаши!"
|
||||||
"missed!"
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"промаши!"
|
|
||||||
|
|
||||||
#: voice.py:89
|
#: voice.py:79
|
||||||
msgid "Missed!"
|
msgid "Missed!"
|
||||||
msgstr "Промаши!"
|
msgstr "Промаши!"
|
||||||
|
|
||||||
#: voice.py:94
|
#: voice.py:83
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"Nobody wants to\n"
|
msgid "Nobody wants to play with me ..."
|
||||||
"play with me ..."
|
msgstr "Никој не сака даси игра со мене ..."
|
||||||
msgstr ""
|
|
||||||
"Никој не сака да\n"
|
|
||||||
"си игра со мене ..."
|
|
||||||
|
|
||||||
#: voice.py:95
|
#: voice.py:84
|
||||||
msgid "I feel so alone ..."
|
msgid "I feel so alone ..."
|
||||||
msgstr "Толку сам ..."
|
msgstr "Толку сам ..."
|
||||||
|
|
||||||
#: voice.py:96
|
#: voice.py:85
|
||||||
msgid "Where's everybody?!"
|
msgid "Where's everybody?!"
|
||||||
msgstr "Каде се сите?!"
|
msgstr "Каде се сите?!"
|
||||||
|
|
||||||
#: voice.py:101
|
#: voice.py:89
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Napping for {secs}s ..."
|
msgid "Napping for {secs}s ..."
|
||||||
msgstr "Ќе дремнам {secs}с ..."
|
msgstr "Ќе дремнам {secs}с ..."
|
||||||
|
|
||||||
#: voice.py:102
|
#: voice.py:90
|
||||||
msgid "Zzzzz"
|
msgid "Zzzzz"
|
||||||
msgstr "Дреммм"
|
msgstr "Дреммм"
|
||||||
|
|
||||||
#: voice.py:103
|
#: voice.py:91
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "ZzzZzzz ({secs}s)"
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
msgstr "Дремммм ({secs}с)"
|
msgstr "Дремммм ({secs}с)"
|
||||||
|
|
||||||
#: voice.py:112
|
#: voice.py:98
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Waiting for {secs}s ..."
|
msgid "Waiting for {secs}s ..."
|
||||||
msgstr "Чекам {secs}с ..."
|
msgstr "Чекам {secs}с ..."
|
||||||
|
|
||||||
#: voice.py:114
|
#: voice.py:100
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Looking around ({secs}s)"
|
msgid "Looking around ({secs}s)"
|
||||||
msgstr "Шарам наоколу ({secs}с)"
|
msgstr "Шарам наоколу ({secs}с)"
|
||||||
|
|
||||||
|
#: voice.py:106
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Hey {what} let's be friends!"
|
||||||
|
msgstr "Еј{what}ајде да се дружиме!"
|
||||||
|
|
||||||
|
#: voice.py:107
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr "Се закачувам на{what}"
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr "Јо{what}!"
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr "Знаеш што, на{mac}не му треба WiFi!"
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
|
msgstr "Го деавтентицирам{mac}"
|
||||||
|
|
||||||
|
#: voice.py:114
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr "Кикбан{mac}!"
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr "Кул, фативме {num}нови ракувања!"
|
||||||
|
|
||||||
#: voice.py:121
|
#: voice.py:121
|
||||||
#, python-brace-format
|
#, fuzzy
|
||||||
msgid ""
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
"Hey\n"
|
msgstr "Упс, нешто не еко што треба ...Рестартирам ..."
|
||||||
"{what}\n"
|
|
||||||
"let's be friends!"
|
|
||||||
msgstr ""
|
|
||||||
"Еј\n"
|
|
||||||
"{what}\n"
|
|
||||||
"ајде да се дружиме!"
|
|
||||||
|
|
||||||
#: voice.py:122
|
#: voice.py:124
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Associating to\n"
|
|
||||||
"{what}"
|
|
||||||
msgstr ""
|
|
||||||
"Се закачувам на\n"
|
|
||||||
"{what}"
|
|
||||||
|
|
||||||
#: voice.py:123
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
msgstr ""
|
|
||||||
"Јо\n"
|
|
||||||
"{what}!"
|
|
||||||
|
|
||||||
#: voice.py:128
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Just decided that\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"needs no WiFi!"
|
|
||||||
msgstr ""
|
|
||||||
"Знаеш што, на\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"не му треба WiFi!"
|
|
||||||
|
|
||||||
#: voice.py:129
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Deauthenticating\n"
|
|
||||||
"{mac}"
|
|
||||||
msgstr ""
|
|
||||||
"Го деавтентицирам\n"
|
|
||||||
"{mac}"
|
|
||||||
|
|
||||||
#: voice.py:130
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Kickbanning\n"
|
|
||||||
"{mac}!"
|
|
||||||
msgstr ""
|
|
||||||
"Кикбан\n"
|
|
||||||
"{mac}!"
|
|
||||||
|
|
||||||
#: voice.py:135
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Cool, we got {num}\n"
|
|
||||||
"new handshake{plural}!"
|
|
||||||
msgstr ""
|
|
||||||
"Кул, фативме {num}\n"
|
|
||||||
"нови ракувања!"
|
|
||||||
|
|
||||||
#: voice.py:139
|
|
||||||
msgid ""
|
|
||||||
"Ops, something\n"
|
|
||||||
"went wrong ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Упс, нешто не е\n"
|
|
||||||
"ко што треба ...\n"
|
|
||||||
"Рестартирам ..."
|
|
||||||
|
|
||||||
#: voice.py:143
|
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Kicked {num} stations\n"
|
msgid "Kicked {num} stations\n"
|
||||||
msgstr "Избацив {num} станици"
|
msgstr "Избацив {num} станици\n"
|
||||||
|
|
||||||
#: voice.py:144
|
#: voice.py:125
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Made {num} new friends\n"
|
msgid "Made {num} new friends\n"
|
||||||
msgstr "{num} нови другарчиња"
|
msgstr "{num} нови другарчиња\n"
|
||||||
|
|
||||||
#: voice.py:145
|
#: voice.py:126
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Got {num} handshakes\n"
|
msgid "Got {num} handshakes\n"
|
||||||
msgstr "Фатив {num} ракувања"
|
msgstr "Фатив {num} ракувања\n"
|
||||||
|
|
||||||
#: voice.py:147
|
#: voice.py:128
|
||||||
msgid "Met 1 peer"
|
msgid "Met 1 peer"
|
||||||
msgstr "Запознав 1 пријател"
|
msgstr "Запознав 1 пријател"
|
||||||
|
|
||||||
#: voice.py:149
|
#: voice.py:130
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Met {num} peers"
|
msgid "Met {num} peers"
|
||||||
msgstr "Запознав {num} пријатели"
|
msgstr "Запознав {num} пријатели"
|
||||||
|
|
||||||
#: voice.py:154
|
#: voice.py:135
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
@ -337,5 +243,5 @@ msgid ""
|
|||||||
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Си газам веќе {duration} и избацив {deauthed} клиенти! Запознав {associated} "
|
"Си газам веќе {duration} и избацив {deauthed} клиенти! Запознав {associated} "
|
||||||
"нови другарчиња и лапнав {handshakes} ракувања! #pwnagotchi #pwnlog "
|
"нови другарчиња и лапнав {handshakes} ракувања! #pwnagotchi #pwnlog #pwnlife "
|
||||||
"#pwnlife #hacktheplanet #skynet"
|
"#hacktheplanet #skynet"
|
||||||
|
Binary file not shown.
@ -3,43 +3,32 @@
|
|||||||
# This file is distributed under the same license as the pwnagotchi package.
|
# This file is distributed under the same license as the pwnagotchi package.
|
||||||
# FIRST AUTHOR justin-p@users.noreply.github.com, 2019.
|
# FIRST AUTHOR justin-p@users.noreply.github.com, 2019.
|
||||||
#
|
#
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-09-29 13:42+0200\n"
|
"POT-Creation-Date: 2019-10-03 12:44+0200\n"
|
||||||
"PO-Revision-Date: 2019-09-29 14:00+0200\n"
|
"PO-Revision-Date: 2019-09-29 14:00+0200\n"
|
||||||
"Last-Translator: Justin-P <justin-p@users.noreply.github.com>\n"
|
"Last-Translator: Justin-P <justin-p@users.noreply.github.com>\n"
|
||||||
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
||||||
"Language: english\n"
|
"Language: nl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: voice.py:16
|
#: voice.py:18
|
||||||
msgid "ZzzzZZzzzzZzzz"
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
msgstr "ZzzzZZzzzzZzzz"
|
msgstr "ZzzzZZzzzzZzzz"
|
||||||
|
|
||||||
#: voice.py:21
|
|
||||||
msgid ""
|
|
||||||
"Hi, I'm Pwnagotchi!\n"
|
|
||||||
"Starting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Hoi, Ik ben\n"
|
|
||||||
"Pwnagotchi!\n"
|
|
||||||
"Opstarten ..."
|
|
||||||
|
|
||||||
#: voice.py:22
|
#: voice.py:22
|
||||||
msgid ""
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
"New day, new hunt,\n"
|
msgstr "Hoi, Ik ben Pwnagotchi! Opstarten ..."
|
||||||
"new pwns!"
|
|
||||||
msgstr ""
|
|
||||||
"Nieuwe dag,\n"
|
|
||||||
"nieuwe jacht,\n"
|
|
||||||
"nieuwe pwns!"
|
|
||||||
|
|
||||||
#: voice.py:23
|
#: voice.py:23
|
||||||
|
msgid "New day, new hunt, new pwns!"
|
||||||
|
msgstr "Nieuwe dag, nieuwe jacht, nieuwe pwns!"
|
||||||
|
|
||||||
|
#: voice.py:24
|
||||||
msgid "Hack the Planet!"
|
msgid "Hack the Planet!"
|
||||||
msgstr "Hack de Wereld!"
|
msgstr "Hack de Wereld!"
|
||||||
|
|
||||||
@ -48,301 +37,203 @@ msgid "AI ready."
|
|||||||
msgstr "AI is klaar."
|
msgstr "AI is klaar."
|
||||||
|
|
||||||
#: voice.py:29
|
#: voice.py:29
|
||||||
msgid ""
|
msgid "The neural network is ready."
|
||||||
"The neural network\n"
|
msgstr "Neuronen netwerkis klaar voor gebruik."
|
||||||
"is ready."
|
|
||||||
msgstr ""
|
|
||||||
"Neuronen netwerk\n"
|
|
||||||
"is klaar voor gebruik."
|
|
||||||
|
|
||||||
#: voice.py:39
|
#: voice.py:37
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
"Hey, channel {channel} is\n"
|
msgstr "Hey, kanaal {channel} is vrij! Je AP zal je bedanken."
|
||||||
"free! Your AP will\n"
|
|
||||||
"say thanks."
|
|
||||||
msgstr ""
|
|
||||||
"Hey, kanaal {channel} is\n"
|
|
||||||
"vrij! Je AP zal je\n"
|
|
||||||
"bedanken."
|
|
||||||
|
|
||||||
#: voice.py:44
|
#: voice.py:41
|
||||||
msgid "I'm bored ..."
|
msgid "I'm bored ..."
|
||||||
msgstr "Ik verveel me ..."
|
msgstr "Ik verveel me ..."
|
||||||
|
|
||||||
#: voice.py:45
|
#: voice.py:42
|
||||||
msgid "Let's go for a walk!"
|
msgid "Let's go for a walk!"
|
||||||
msgstr "Laten we een rondje lopen!"
|
msgstr "Laten we een rondje lopen!"
|
||||||
|
|
||||||
#: voice.py:49
|
#: voice.py:45
|
||||||
msgid ""
|
msgid "This is the best day of my life!"
|
||||||
"This is the best\n"
|
msgstr "Dit is de beste dag van mijn leven!"
|
||||||
"day of my life!"
|
|
||||||
msgstr ""
|
|
||||||
"Dit is de beste\n"
|
|
||||||
"dag van mijn leven!"
|
|
||||||
|
|
||||||
#: voice.py:53
|
#: voice.py:48
|
||||||
msgid "Shitty day :/"
|
msgid "Shitty day :/"
|
||||||
msgstr "Ruk dag :/"
|
msgstr "Ruk dag :/"
|
||||||
|
|
||||||
#: voice.py:58
|
#: voice.py:52
|
||||||
msgid "I'm extremely bored ..."
|
msgid "I'm extremely bored ..."
|
||||||
msgstr "Ik verveel me \n"
|
msgstr "Ik verveel me kapot ..."
|
||||||
"kapot ..."
|
|
||||||
|
|
||||||
#: voice.py:59
|
#: voice.py:53
|
||||||
msgid "I'm very sad ..."
|
msgid "I'm very sad ..."
|
||||||
msgstr "Ik ben erg\n"
|
msgstr "Ik ben ergverdrietig ..."
|
||||||
"verdrietig ..."
|
|
||||||
|
|
||||||
#: voice.py:60
|
#: voice.py:54
|
||||||
msgid "I'm sad"
|
msgid "I'm sad"
|
||||||
msgstr "Ik ben verdrietig"
|
msgstr "Ik ben verdrietig"
|
||||||
|
|
||||||
#: voice.py:66
|
#: voice.py:59
|
||||||
msgid "I'm living the life!"
|
msgid "I'm living the life!"
|
||||||
msgstr "Beter kan het leven\n"
|
msgstr "Beter kan het levenniet worden!"
|
||||||
"niet worden!"
|
|
||||||
|
|
||||||
#: voice.py:67
|
#: voice.py:60
|
||||||
msgid "I pwn therefore I am."
|
msgid "I pwn therefore I am."
|
||||||
msgstr "Ik pwn daarom besta ik."
|
msgstr "Ik pwn daarom besta ik."
|
||||||
|
|
||||||
#: voice.py:68
|
#: voice.py:61
|
||||||
msgid "So many networks!!!"
|
msgid "So many networks!!!"
|
||||||
msgstr "Zo veel netwerken!!!"
|
msgstr "Zo veel netwerken!!!"
|
||||||
|
|
||||||
#: voice.py:69
|
#: voice.py:62
|
||||||
msgid ""
|
msgid "I'm having so much fun!"
|
||||||
"I'm having so much\n"
|
|
||||||
"fun!"
|
|
||||||
msgstr "Dit is zo leuk!"
|
msgstr "Dit is zo leuk!"
|
||||||
|
|
||||||
#: voice.py:70
|
#: voice.py:63
|
||||||
msgid ""
|
#, fuzzy
|
||||||
"My crime is that of\n"
|
msgid "My crime is that of curiosity ..."
|
||||||
"curiosity ..."
|
msgstr "Mijn enige misdrijfis mijn nieuwsgierigheid ..."
|
||||||
msgstr ""
|
|
||||||
"Mijn enige misdrijf\n"
|
|
||||||
"is mijn \n"
|
|
||||||
"nieuwsgierigheid ..."
|
|
||||||
|
|
||||||
#: voice.py:75
|
#: voice.py:67
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
"Hello\n"
|
msgstr "Hallo {name}! Leuk je te ontmoeten. {name}"
|
||||||
"{name}!\n"
|
|
||||||
"Nice to meet you. {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Hallo\n"
|
|
||||||
"{name}!\n"
|
|
||||||
"Leuk je te ontmoeten. {name}"
|
|
||||||
|
|
||||||
#: voice.py:76
|
#: voice.py:68
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Unit {name} is nearby! {name}"
|
||||||
"Unit\n"
|
msgstr "Unit {name} is dichtbij! {name}"
|
||||||
"{name}\n"
|
|
||||||
"is nearby! {name}"
|
|
||||||
msgstr ""
|
|
||||||
"Unit\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is dichtbij! {name}"
|
|
||||||
|
|
||||||
#: voice.py:81
|
#: voice.py:72
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Uhm ... goodbye {name}"
|
||||||
"Uhm ...\n"
|
msgstr "Uhm ...tot ziens {name}"
|
||||||
"goodbye\n"
|
|
||||||
"{name}"
|
|
||||||
msgstr ""
|
|
||||||
"Uhm ...\n"
|
|
||||||
"tot ziens\n"
|
|
||||||
"{name}"
|
|
||||||
|
|
||||||
#: voice.py:82
|
#: voice.py:73
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} is gone ..."
|
||||||
"{name}\n"
|
msgstr "{name} is weg"
|
||||||
"is gone ..."
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"is weg"
|
|
||||||
|
|
||||||
#: voice.py:87
|
#: voice.py:77
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Whoops ... {name} is gone."
|
||||||
"Whoops ...\n"
|
msgstr "Whoopsie ...{name} is weg"
|
||||||
"{name}\n"
|
|
||||||
"is gone."
|
|
||||||
msgstr ""
|
|
||||||
"Whoopsie ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is weg"
|
|
||||||
|
|
||||||
#: voice.py:88
|
#: voice.py:78
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} missed!"
|
||||||
"{name}\n"
|
msgstr "{name} gemist!"
|
||||||
"missed!"
|
|
||||||
msgstr ""
|
|
||||||
"{name}\n"
|
|
||||||
"gemist!"
|
|
||||||
|
|
||||||
#: voice.py:89
|
#: voice.py:79
|
||||||
msgid "Missed!"
|
msgid "Missed!"
|
||||||
msgstr "Gemist!"
|
msgstr "Gemist!"
|
||||||
|
|
||||||
#: voice.py:94
|
#: voice.py:83
|
||||||
msgid ""
|
msgid "Nobody wants to play with me ..."
|
||||||
"Nobody wants to\n"
|
msgstr "Niemand wil metmij spelen ..."
|
||||||
"play with me ..."
|
|
||||||
msgstr ""
|
|
||||||
"Niemand wil met\n"
|
|
||||||
"mij spelen ..."
|
|
||||||
|
|
||||||
#: voice.py:95
|
#: voice.py:84
|
||||||
msgid "I feel so alone ..."
|
msgid "I feel so alone ..."
|
||||||
msgstr "Zo alleen ..."
|
msgstr "Zo alleen ..."
|
||||||
|
|
||||||
#: voice.py:96
|
#: voice.py:85
|
||||||
msgid "Where's everybody?!"
|
msgid "Where's everybody?!"
|
||||||
msgstr "Waar is iedereen?!"
|
msgstr "Waar is iedereen?!"
|
||||||
|
|
||||||
#: voice.py:101
|
#: voice.py:89
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Napping for {secs}s ..."
|
msgid "Napping for {secs}s ..."
|
||||||
msgstr "Dutje doen voor {secs}s ..."
|
msgstr "Dutje doen voor {secs}s ..."
|
||||||
|
|
||||||
#: voice.py:102
|
#: voice.py:90
|
||||||
msgid "Zzzzz"
|
msgid "Zzzzz"
|
||||||
msgstr "Zzzzz"
|
msgstr "Zzzzz"
|
||||||
|
|
||||||
#: voice.py:103
|
#: voice.py:91
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "ZzzZzzz ({secs}s)"
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:112
|
#: voice.py:98
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Waiting for {secs}s ..."
|
msgid "Waiting for {secs}s ..."
|
||||||
msgstr "Even {secs}s wachten ..."
|
msgstr "Even {secs}s wachten ..."
|
||||||
|
|
||||||
#: voice.py:114
|
#: voice.py:100
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Looking around ({secs}s)"
|
msgid "Looking around ({secs}s)"
|
||||||
msgstr "Rond kijken ({secs}s)"
|
msgstr "Rond kijken ({secs}s)"
|
||||||
|
|
||||||
|
#: voice.py:106
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hey {what} let's be friends!"
|
||||||
|
msgstr "Hey {what}, laten we vriendenworden!"
|
||||||
|
|
||||||
|
#: voice.py:107
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr "Verbinden met {what}"
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr "Ik vind dat {mac} genoeg WiFiheeft gehad!"
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
|
msgstr "De-autoriseren {mac}"
|
||||||
|
|
||||||
|
#: voice.py:114
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr "Ik ga {mac} even kicken!"
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr "Gaaf, we hebben {num} nieuwe handshake{plural}!"
|
||||||
|
|
||||||
#: voice.py:121
|
#: voice.py:121
|
||||||
#, python-brace-format
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
msgid ""
|
msgstr "Oops, iets ging fout ...Rebooting ..."
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
|
||||||
"let's be friends!"
|
|
||||||
msgstr ""
|
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
|
||||||
"Laten we vrienden\n"
|
|
||||||
"worden!"
|
|
||||||
|
|
||||||
#: voice.py:122
|
#: voice.py:124
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Associating to\n"
|
|
||||||
"{what}"
|
|
||||||
msgstr ""
|
|
||||||
"Verbinden met\n"
|
|
||||||
"{what}"
|
|
||||||
|
|
||||||
#: voice.py:123
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
|
|
||||||
#: voice.py:128
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Just decided that\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"needs no WiFi!"
|
|
||||||
msgstr "Ik vind dat\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"genoeg WiFi\n"
|
|
||||||
"heeft gehad!"
|
|
||||||
|
|
||||||
#: voice.py:129
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Deauthenticating\n"
|
|
||||||
"{mac}"
|
|
||||||
msgstr ""
|
|
||||||
"De-autoriseren\n"
|
|
||||||
"{mac}"
|
|
||||||
|
|
||||||
#: voice.py:130
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Kickbanning\n"
|
|
||||||
"{mac}!"
|
|
||||||
msgstr ""
|
|
||||||
"Ik ga\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"even kicken!"
|
|
||||||
|
|
||||||
#: voice.py:135
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Cool, we got {num}\n"
|
|
||||||
"new handshake{plural}!"
|
|
||||||
msgstr ""
|
|
||||||
"Gaaf, we hebben {num}\n"
|
|
||||||
"nieuwe handshake{plural}!"
|
|
||||||
|
|
||||||
#: voice.py:139
|
|
||||||
msgid ""
|
|
||||||
"Ops, something\n"
|
|
||||||
"went wrong ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
msgstr ""
|
|
||||||
"Oops, iets"
|
|
||||||
"ging fout ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
|
|
||||||
#: voice.py:143
|
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Kicked {num} stations\n"
|
msgid "Kicked {num} stations\n"
|
||||||
msgstr "{num} stations gekicked\n"
|
msgstr "{num} stations gekicked\n"
|
||||||
|
|
||||||
#: voice.py:144
|
#: voice.py:125
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Made {num} new friends\n"
|
msgid "Made {num} new friends\n"
|
||||||
msgstr "{num} nieuwe vrienden\n"
|
msgstr "{num} nieuwe vrienden\n"
|
||||||
|
|
||||||
#: voice.py:145
|
#: voice.py:126
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Got {num} handshakes\n"
|
msgid "Got {num} handshakes\n"
|
||||||
msgstr "{num} nieuwe handshakes\n"
|
msgstr "{num} nieuwe handshakes\n"
|
||||||
|
|
||||||
#: voice.py:147
|
#: voice.py:128
|
||||||
msgid "Met 1 peer"
|
msgid "Met 1 peer"
|
||||||
msgstr "1 peer ontmoet"
|
msgstr "1 peer ontmoet"
|
||||||
|
|
||||||
#: voice.py:149
|
#: voice.py:130
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Met {num} peers"
|
msgid "Met {num} peers"
|
||||||
msgstr "{num} peers ontmoet"
|
msgstr "{num} peers ontmoet"
|
||||||
|
|
||||||
#: voice.py:154
|
#: voice.py:135
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi "
|
"{associated} new friends and ate {handshakes} handshakes! #pwnagotchi "
|
||||||
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
"#pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ik heb gepwned voor {duration} and heb {deauthed} clients gekicked! Ik heb ook "
|
"Ik heb gepwned voor {duration} and heb {deauthed} clients gekicked! Ik heb "
|
||||||
"{associated} nieuwe vrienden gevonden en heb {handshakes} handshakes gegeten! "
|
"ook {associated} nieuwe vrienden gevonden en heb {handshakes} handshakes "
|
||||||
"#pwnagotchi #pwnlog #pwnlife #hacktheplanet #skynet"
|
"gegeten! #pwnagotchi #pwnlog #pwnlife #hacktheplanet #skynet"
|
||||||
|
@ -1,39 +1,35 @@
|
|||||||
# pwnigotchi voice data
|
# SOME DESCRIPTIVE TITLE.
|
||||||
# Copyright (C) 2019
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
# This file is distributed under the same license as the pwnagotchi package.
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
# FIRST AUTHOR <33197631+dadav@users.noreply.github.com>, 2019.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.0.1\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-09-29 13:42+0200\n"
|
"POT-Creation-Date: 2019-10-03 13:10+0200\n"
|
||||||
"PO-Revision-Date: 2019-09-29 14:00+0200\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: dadav <33197631+dadav@users.noreply.github.com>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: pwnagotchi <33197631+dadav@users.noreply.github.com>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: english\n"
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: voice.py:16
|
#: voice.py:18
|
||||||
msgid "ZzzzZZzzzzZzzz"
|
msgid "ZzzzZZzzzzZzzz"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:21
|
|
||||||
msgid ""
|
|
||||||
"Hi, I'm Pwnagotchi!\n"
|
|
||||||
"Starting ..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:22
|
#: voice.py:22
|
||||||
msgid ""
|
msgid "Hi, I'm Pwnagotchi! Starting ..."
|
||||||
"New day, new hunt,\n"
|
|
||||||
"new pwns!"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:23
|
#: voice.py:23
|
||||||
|
msgid "New day, new hunt, new pwns!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:24
|
||||||
msgid "Hack the Planet!"
|
msgid "Hack the Planet!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -42,244 +38,196 @@ msgid "AI ready."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:29
|
#: voice.py:29
|
||||||
msgid ""
|
msgid "The neural network is ready."
|
||||||
"The neural network\n"
|
|
||||||
"is ready."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:39
|
#: voice.py:37
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hey, channel {channel} is free! Your AP will say thanks."
|
||||||
"Hey, channel {channel} is\n"
|
|
||||||
"free! Your AP will\n"
|
|
||||||
"say thanks."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:44
|
#: voice.py:41
|
||||||
msgid "I'm bored ..."
|
msgid "I'm bored ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:45
|
#: voice.py:42
|
||||||
msgid "Let's go for a walk!"
|
msgid "Let's go for a walk!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:49
|
#: voice.py:45
|
||||||
msgid ""
|
msgid "This is the best day of my life!"
|
||||||
"This is the best\n"
|
|
||||||
"day of my life!"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:53
|
#: voice.py:48
|
||||||
msgid "Shitty day :/"
|
msgid "Shitty day :/"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:58
|
#: voice.py:52
|
||||||
msgid "I'm extremely bored ..."
|
msgid "I'm extremely bored ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:59
|
#: voice.py:53
|
||||||
msgid "I'm very sad ..."
|
msgid "I'm very sad ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:60
|
#: voice.py:54
|
||||||
msgid "I'm sad"
|
msgid "I'm sad"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:66
|
#: voice.py:59
|
||||||
msgid "I'm living the life!"
|
msgid "I'm living the life!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:67
|
#: voice.py:60
|
||||||
msgid "I pwn therefore I am."
|
msgid "I pwn therefore I am."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:68
|
#: voice.py:61
|
||||||
msgid "So many networks!!!"
|
msgid "So many networks!!!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:69
|
#: voice.py:62
|
||||||
msgid ""
|
msgid "I'm having so much fun!"
|
||||||
"I'm having so much\n"
|
|
||||||
"fun!"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:70
|
#: voice.py:63
|
||||||
msgid ""
|
msgid "My crime is that of curiosity ..."
|
||||||
"My crime is that of\n"
|
|
||||||
"curiosity ..."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:75
|
#: voice.py:67
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Hello {name}! Nice to meet you. {name}"
|
||||||
"Hello\n"
|
|
||||||
"{name}!\n"
|
|
||||||
"Nice to meet you. {name}"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:76
|
#: voice.py:68
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Unit {name} is nearby! {name}"
|
||||||
"Unit\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is nearby! {name}"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:81
|
#: voice.py:72
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Uhm ... goodbye {name}"
|
||||||
"Uhm ...\n"
|
|
||||||
"goodbye\n"
|
|
||||||
"{name}"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:82
|
#: voice.py:73
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} is gone ..."
|
||||||
"{name}\n"
|
|
||||||
"is gone ..."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:87
|
#: voice.py:77
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "Whoops ... {name} is gone."
|
||||||
"Whoops ...\n"
|
|
||||||
"{name}\n"
|
|
||||||
"is gone."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:88
|
#: voice.py:78
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid "{name} missed!"
|
||||||
"{name}\n"
|
|
||||||
"missed!"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:89
|
#: voice.py:79
|
||||||
msgid "Missed!"
|
msgid "Missed!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:94
|
#: voice.py:83
|
||||||
msgid ""
|
msgid "Nobody wants to play with me ..."
|
||||||
"Nobody wants to\n"
|
|
||||||
"play with me ..."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:95
|
#: voice.py:84
|
||||||
msgid "I feel so alone ..."
|
msgid "I feel so alone ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:96
|
#: voice.py:85
|
||||||
msgid "Where's everybody?!"
|
msgid "Where's everybody?!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:101
|
#: voice.py:89
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Napping for {secs}s ..."
|
msgid "Napping for {secs}s ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:102
|
#: voice.py:90
|
||||||
msgid "Zzzzz"
|
msgid "Zzzzz"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:103
|
#: voice.py:91
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "ZzzZzzz ({secs}s)"
|
msgid "ZzzZzzz ({secs}s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:112
|
#: voice.py:98
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Waiting for {secs}s ..."
|
msgid "Waiting for {secs}s ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:114
|
#: voice.py:100
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Looking around ({secs}s)"
|
msgid "Looking around ({secs}s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:106
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hey {what} let's be friends!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:107
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Associating to {what}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:108
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Yo {what}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:112
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Just decided that {mac} needs no WiFi!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:113
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Deauthenticating {mac}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:114
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Kickbanning {mac}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: voice.py:118
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Cool, we got {num} new handshake{plural}!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:121
|
#: voice.py:121
|
||||||
#, python-brace-format
|
msgid "Ops, something went wrong ... Rebooting ..."
|
||||||
msgid ""
|
|
||||||
"Hey\n"
|
|
||||||
"{what}\n"
|
|
||||||
"let's be friends!"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:122
|
#: voice.py:124
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Associating to\n"
|
|
||||||
"{what}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:123
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Yo\n"
|
|
||||||
"{what}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:128
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Just decided that\n"
|
|
||||||
"{mac}\n"
|
|
||||||
"needs no WiFi!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:129
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Deauthenticating\n"
|
|
||||||
"{mac}"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:130
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Kickbanning\n"
|
|
||||||
"{mac}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:135
|
|
||||||
#, python-brace-format
|
|
||||||
msgid ""
|
|
||||||
"Cool, we got {num}\n"
|
|
||||||
"new handshake{plural}!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:139
|
|
||||||
msgid ""
|
|
||||||
"Ops, something\n"
|
|
||||||
"went wrong ...\n"
|
|
||||||
"Rebooting ..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: voice.py:143
|
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Kicked {num} stations\n"
|
msgid "Kicked {num} stations\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:144
|
#: voice.py:125
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Made {num} new friends\n"
|
msgid "Made {num} new friends\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:145
|
#: voice.py:126
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Got {num} handshakes\n"
|
msgid "Got {num} handshakes\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:147
|
#: voice.py:128
|
||||||
msgid "Met 1 peer"
|
msgid "Met 1 peer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:149
|
#: voice.py:130
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Met {num} peers"
|
msgid "Met {num} peers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: voice.py:154
|
#: voice.py:135
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
"I've been pwning for {duration} and kicked {deauthed} clients! I've also met "
|
||||||
|
@ -2,8 +2,6 @@ import os
|
|||||||
import glob
|
import glob
|
||||||
import importlib, importlib.util
|
import importlib, importlib.util
|
||||||
|
|
||||||
# import core
|
|
||||||
|
|
||||||
default_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "default")
|
default_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "default")
|
||||||
loaded = {}
|
loaded = {}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
from textwrap import TextWrapper
|
||||||
|
|
||||||
|
|
||||||
class Widget(object):
|
class Widget(object):
|
||||||
@ -39,14 +40,21 @@ class FilledRect(Widget):
|
|||||||
|
|
||||||
|
|
||||||
class Text(Widget):
|
class Text(Widget):
|
||||||
def __init__(self, value="", position=(0, 0), font=None, color=0):
|
def __init__(self, value="", position=(0, 0), font=None, color=0, wrap=False, max_length=0):
|
||||||
super().__init__(position, color)
|
super().__init__(position, color)
|
||||||
self.value = value
|
self.value = value
|
||||||
self.font = font
|
self.font = font
|
||||||
|
self.wrap = wrap
|
||||||
|
self.max_length = max_length
|
||||||
|
self.wrapper = TextWrapper(width=self.max_length, replace_whitespace=False) if wrap else None
|
||||||
|
|
||||||
def draw(self, canvas, drawer):
|
def draw(self, canvas, drawer):
|
||||||
if self.value is not None:
|
if self.value is not None:
|
||||||
drawer.text(self.xy, self.value, font=self.font, fill=self.color)
|
if self.wrap:
|
||||||
|
text = '\n'.join(self.wrapper.wrap(self.value))
|
||||||
|
else:
|
||||||
|
text = self.value
|
||||||
|
drawer.text(self.xy, text, font=self.font, fill=self.color)
|
||||||
|
|
||||||
|
|
||||||
class LabeledValue(Widget):
|
class LabeledValue(Widget):
|
||||||
|
@ -15,3 +15,4 @@ LONELY = '(ب__ب)'
|
|||||||
SAD = '(╥☁╥ )'
|
SAD = '(╥☁╥ )'
|
||||||
FRIEND = '(♥‿‿♥)'
|
FRIEND = '(♥‿‿♥)'
|
||||||
BROKEN = '(☓‿‿☓)'
|
BROKEN = '(☓‿‿☓)'
|
||||||
|
DEBUG = '(#__#)'
|
||||||
|
@ -6,9 +6,11 @@ class State(object):
|
|||||||
self._state = state
|
self._state = state
|
||||||
self._lock = Lock()
|
self._lock = Lock()
|
||||||
self._listeners = {}
|
self._listeners = {}
|
||||||
|
self._changes = {}
|
||||||
|
|
||||||
def add_element(self, key, elem):
|
def add_element(self, key, elem):
|
||||||
self._state[key] = elem
|
self._state[key] = elem
|
||||||
|
self._changes[key] = True
|
||||||
|
|
||||||
def add_listener(self, key, cb):
|
def add_listener(self, key, cb):
|
||||||
with self._lock:
|
with self._lock:
|
||||||
@ -22,10 +24,29 @@ class State(object):
|
|||||||
with self._lock:
|
with self._lock:
|
||||||
return self._state[key].value if key in self._state else None
|
return self._state[key].value if key in self._state else None
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
with self._lock:
|
||||||
|
self._changes = {}
|
||||||
|
|
||||||
|
def changes(self, ignore=()):
|
||||||
|
with self._lock:
|
||||||
|
changes = []
|
||||||
|
for change in self._changes.keys():
|
||||||
|
if change not in ignore:
|
||||||
|
changes.append(change)
|
||||||
|
return changes
|
||||||
|
|
||||||
|
def has_changes(self):
|
||||||
|
with self._lock:
|
||||||
|
return len(self._changes) > 0
|
||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
with self._lock:
|
with self._lock:
|
||||||
if key in self._state:
|
if key in self._state:
|
||||||
prev = self._state[key].value
|
prev = self._state[key].value
|
||||||
self._state[key].value = value
|
self._state[key].value = value
|
||||||
if key in self._listeners and self._listeners[key] is not None and prev != value:
|
|
||||||
self._listeners[key](prev, value)
|
if prev != value:
|
||||||
|
self._changes[key] = True
|
||||||
|
if key in self._listeners and self._listeners[key] is not None:
|
||||||
|
self._listeners[key](prev, value)
|
||||||
|
@ -78,22 +78,25 @@ class View(object):
|
|||||||
label_font=fonts.Bold,
|
label_font=fonts.Bold,
|
||||||
text_font=fonts.Medium),
|
text_font=fonts.Medium),
|
||||||
|
|
||||||
# 'square': Rect([1, 11, 124, 111]),
|
|
||||||
'line1': Line([0, int(self._height * .12), self._width, int(self._height * .12)], color=BLACK),
|
'line1': Line([0, int(self._height * .12), self._width, int(self._height * .12)], color=BLACK),
|
||||||
'line2': Line(
|
'line2': Line(
|
||||||
[0, self._height - int(self._height * .12), self._width, self._height - int(self._height * .12)],
|
[0, self._height - int(self._height * .12), self._width, self._height - int(self._height * .12)],
|
||||||
color=BLACK),
|
color=BLACK),
|
||||||
|
|
||||||
# 'histogram': Histogram([4, 94], color = BLACK),
|
|
||||||
|
|
||||||
'face': Text(value=faces.SLEEP, position=face_pos, color=BLACK, font=fonts.Huge),
|
'face': Text(value=faces.SLEEP, position=face_pos, color=BLACK, font=fonts.Huge),
|
||||||
|
|
||||||
'friend_face': Text(value=None, position=(0, 90), font=fonts.Bold, color=BLACK),
|
'friend_face': Text(value=None, position=(0, 90), font=fonts.Bold, color=BLACK),
|
||||||
'friend_name': Text(value=None, position=(40, 93), font=fonts.BoldSmall, color=BLACK),
|
'friend_name': Text(value=None, position=(40, 93), font=fonts.BoldSmall, color=BLACK),
|
||||||
|
|
||||||
'name': Text(value='%s>' % 'pwnagotchi', position=name_pos, color=BLACK, font=fonts.Bold),
|
'name': Text(value='%s>' % 'pwnagotchi', position=name_pos, color=BLACK, font=fonts.Bold),
|
||||||
# 'face2': Bitmap( '/root/pwnagotchi/data/images/face_happy.bmp', (0, 20)),
|
|
||||||
'status': Text(value=self._voice.default(), position=status_pos, color=BLACK, font=fonts.Medium),
|
'status': Text(value=self._voice.default(),
|
||||||
|
position=status_pos,
|
||||||
|
color=BLACK,
|
||||||
|
font=fonts.Medium,
|
||||||
|
wrap=True,
|
||||||
|
# the current maximum number of characters per line, assuming each character is 6 pixels wide
|
||||||
|
max_length=(self._width - status_pos[0]) // 6),
|
||||||
|
|
||||||
'shakes': LabeledValue(label='PWND ', value='0 (00)', color=BLACK,
|
'shakes': LabeledValue(label='PWND ', value='0 (00)', color=BLACK,
|
||||||
position=(0, self._height - int(self._height * .12) + 1), label_font=fonts.Bold,
|
position=(0, self._height - int(self._height * .12) + 1), label_font=fonts.Bold,
|
||||||
@ -107,7 +110,12 @@ class View(object):
|
|||||||
|
|
||||||
plugins.on('ui_setup', self)
|
plugins.on('ui_setup', self)
|
||||||
|
|
||||||
_thread.start_new_thread(self._refresh_handler, ())
|
if config['ui']['fps'] > 0.0:
|
||||||
|
_thread.start_new_thread(self._refresh_handler, ())
|
||||||
|
self._ignore_changes = ()
|
||||||
|
else:
|
||||||
|
core.log("ui.fps is 0, the display will only update for major changes")
|
||||||
|
self._ignore_changes = ('uptime', 'name')
|
||||||
|
|
||||||
def add_element(self, key, elem):
|
def add_element(self, key, elem):
|
||||||
self._state.add_element(key, elem)
|
self._state.add_element(key, elem)
|
||||||
@ -229,12 +237,12 @@ class View(object):
|
|||||||
if sleeping:
|
if sleeping:
|
||||||
if secs > 1:
|
if secs > 1:
|
||||||
self.set('face', faces.SLEEP)
|
self.set('face', faces.SLEEP)
|
||||||
self.set('status', self._voice.on_napping(secs))
|
self.set('status', self._voice.on_napping(int(secs)))
|
||||||
else:
|
else:
|
||||||
self.set('face', faces.SLEEP2)
|
self.set('face', faces.SLEEP2)
|
||||||
self.set('status', self._voice.on_awakening())
|
self.set('status', self._voice.on_awakening())
|
||||||
else:
|
else:
|
||||||
self.set('status', self._voice.on_waiting(secs))
|
self.set('status', self._voice.on_waiting(int(secs)))
|
||||||
if step % 2 == 0:
|
if step % 2 == 0:
|
||||||
self.set('face', faces.LOOK_R)
|
self.set('face', faces.LOOK_R)
|
||||||
else:
|
else:
|
||||||
@ -300,15 +308,24 @@ class View(object):
|
|||||||
self.set('status', self._voice.on_rebooting())
|
self.set('status', self._voice.on_rebooting())
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
|
def on_custom(self, text):
|
||||||
|
self.set('face', faces.DEBUG)
|
||||||
|
self.set('status', self._voice.custom(text))
|
||||||
|
self.update()
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
with self._lock:
|
with self._lock:
|
||||||
self._canvas = Image.new('1', (self._width, self._height), WHITE)
|
changes = self._state.changes(ignore=self._ignore_changes)
|
||||||
drawer = ImageDraw.Draw(self._canvas)
|
if len(changes):
|
||||||
|
self._canvas = Image.new('1', (self._width, self._height), WHITE)
|
||||||
|
drawer = ImageDraw.Draw(self._canvas)
|
||||||
|
|
||||||
plugins.on('ui_update', self)
|
plugins.on('ui_update', self)
|
||||||
|
|
||||||
for key, lv in self._state.items():
|
for key, lv in self._state.items():
|
||||||
lv.draw(self._canvas, drawer)
|
lv.draw(self._canvas, drawer)
|
||||||
|
|
||||||
for cb in self._render_cbs:
|
for cb in self._render_cbs:
|
||||||
cb(self._canvas)
|
cb(self._canvas)
|
||||||
|
|
||||||
|
self._state.reset()
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
version = '1.0.0travistest'
|
@ -18,74 +18,74 @@ class Voice:
|
|||||||
return self._('ZzzzZZzzzzZzzz')
|
return self._('ZzzzZZzzzzZzzz')
|
||||||
|
|
||||||
def on_starting(self):
|
def on_starting(self):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Hi, I\'m Pwnagotchi!\nStarting ...'),
|
self._('Hi, I\'m Pwnagotchi! Starting ...'),
|
||||||
self._('New day, new hunt,\nnew pwns!'),
|
self._('New day, new hunt, new pwns!'),
|
||||||
self._('Hack the Planet!')])
|
self._('Hack the Planet!')])
|
||||||
|
|
||||||
def on_ai_ready(self):
|
def on_ai_ready(self):
|
||||||
return random.choice([
|
return random.choice([
|
||||||
self._('AI ready.'),
|
self._('AI ready.'),
|
||||||
self._('The neural network\nis ready.')])
|
self._('The neural network is ready.')])
|
||||||
|
|
||||||
def on_normal(self):
|
def on_normal(self):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
'',
|
'',
|
||||||
'...'])
|
'...'])
|
||||||
|
|
||||||
def on_free_channel(self, channel):
|
def on_free_channel(self, channel):
|
||||||
return self._('Hey, channel {channel} is\nfree! Your AP will\nsay thanks.').format(channel=channel)
|
return self._('Hey, channel {channel} is free! Your AP will say thanks.').format(channel=channel)
|
||||||
|
|
||||||
def on_bored(self):
|
def on_bored(self):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('I\'m bored ...'),
|
self._('I\'m bored ...'),
|
||||||
self._('Let\'s go for a walk!')])
|
self._('Let\'s go for a walk!')])
|
||||||
|
|
||||||
def on_motivated(self, reward):
|
def on_motivated(self, reward):
|
||||||
return self._('This is the best\nday of my life!')
|
return self._('This is the best day of my life!')
|
||||||
|
|
||||||
def on_demotivated(self, reward):
|
def on_demotivated(self, reward):
|
||||||
return self._('Shitty day :/')
|
return self._('Shitty day :/')
|
||||||
|
|
||||||
def on_sad(self):
|
def on_sad(self):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('I\'m extremely bored ...'),
|
self._('I\'m extremely bored ...'),
|
||||||
self._('I\'m very sad ...'),
|
self._('I\'m very sad ...'),
|
||||||
self._('I\'m sad'),
|
self._('I\'m sad'),
|
||||||
'...'])
|
'...'])
|
||||||
|
|
||||||
def on_excited(self):
|
def on_excited(self):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('I\'m living the life!'),
|
self._('I\'m living the life!'),
|
||||||
self._('I pwn therefore I am.'),
|
self._('I pwn therefore I am.'),
|
||||||
self._('So many networks!!!'),
|
self._('So many networks!!!'),
|
||||||
self._('I\'m having so much\nfun!'),
|
self._('I\'m having so much fun!'),
|
||||||
self._('My crime is that of\ncuriosity ...')])
|
self._('My crime is that of curiosity ...')])
|
||||||
|
|
||||||
def on_new_peer(self, peer):
|
def on_new_peer(self, peer):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Hello\n{name}!\nNice to meet you. {name}').format(name=peer.name()),
|
self._('Hello {name}! Nice to meet you. {name}').format(name=peer.name()),
|
||||||
self._('Unit\n{name}\nis nearby! {name}').format(name=peer.name())])
|
self._('Unit {name} is nearby! {name}').format(name=peer.name())])
|
||||||
|
|
||||||
def on_lost_peer(self, peer):
|
def on_lost_peer(self, peer):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Uhm ...\ngoodbye\n{name}').format(name=peer.name()),
|
self._('Uhm ... goodbye {name}').format(name=peer.name()),
|
||||||
self._('{name}\nis gone ...').format(name=peer.name())])
|
self._('{name} is gone ...').format(name=peer.name())])
|
||||||
|
|
||||||
def on_miss(self, who):
|
def on_miss(self, who):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Whoops ...\n{name}\nis gone.').format(name=who),
|
self._('Whoops ... {name} is gone.').format(name=who),
|
||||||
self._('{name}\nmissed!').format(name=who),
|
self._('{name} missed!').format(name=who),
|
||||||
self._('Missed!')])
|
self._('Missed!')])
|
||||||
|
|
||||||
def on_lonely(self):
|
def on_lonely(self):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Nobody wants to\nplay with me ...'),
|
self._('Nobody wants to play with me ...'),
|
||||||
self._('I feel so alone ...'),
|
self._('I feel so alone ...'),
|
||||||
self._('Where\'s everybody?!')])
|
self._('Where\'s everybody?!')])
|
||||||
|
|
||||||
def on_napping(self, secs):
|
def on_napping(self, secs):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Napping for {secs}s ...').format(secs=secs),
|
self._('Napping for {secs}s ...').format(secs=secs),
|
||||||
self._('Zzzzz'),
|
self._('Zzzzz'),
|
||||||
self._('ZzzZzzz ({secs}s)').format(secs=secs)])
|
self._('ZzzZzzz ({secs}s)').format(secs=secs)])
|
||||||
@ -94,7 +94,7 @@ class Voice:
|
|||||||
return random.choice(['...', '!'])
|
return random.choice(['...', '!'])
|
||||||
|
|
||||||
def on_waiting(self, secs):
|
def on_waiting(self, secs):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Waiting for {secs}s ...').format(secs=secs),
|
self._('Waiting for {secs}s ...').format(secs=secs),
|
||||||
'...',
|
'...',
|
||||||
self._('Looking around ({secs}s)').format(secs=secs)])
|
self._('Looking around ({secs}s)').format(secs=secs)])
|
||||||
@ -102,23 +102,23 @@ class Voice:
|
|||||||
def on_assoc(self, ap):
|
def on_assoc(self, ap):
|
||||||
ssid, bssid = ap['hostname'], ap['mac']
|
ssid, bssid = ap['hostname'], ap['mac']
|
||||||
what = ssid if ssid != '' and ssid != '<hidden>' else bssid
|
what = ssid if ssid != '' and ssid != '<hidden>' else bssid
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Hey\n{what}\nlet\'s be friends!').format(what=what),
|
self._('Hey {what} let\'s be friends!').format(what=what),
|
||||||
self._('Associating to\n{what}').format(what=what),
|
self._('Associating to {what}').format(what=what),
|
||||||
self._('Yo\n{what}!').format(what=what)])
|
self._('Yo {what}!').format(what=what)])
|
||||||
|
|
||||||
def on_deauth(self, sta):
|
def on_deauth(self, sta):
|
||||||
return random.choice([ \
|
return random.choice([
|
||||||
self._('Just decided that\n{mac}\nneeds no WiFi!').format(mac=sta['mac']),
|
self._('Just decided that {mac} needs no WiFi!').format(mac=sta['mac']),
|
||||||
self._('Deauthenticating\n{mac}').format(mac=sta['mac']),
|
self._('Deauthenticating {mac}').format(mac=sta['mac']),
|
||||||
self._('Kickbanning\n{mac}!').format(mac=sta['mac'])])
|
self._('Kickbanning {mac}!').format(mac=sta['mac'])])
|
||||||
|
|
||||||
def on_handshakes(self, new_shakes):
|
def on_handshakes(self, new_shakes):
|
||||||
s = 's' if new_shakes > 1 else ''
|
s = 's' if new_shakes > 1 else ''
|
||||||
return self._('Cool, we got {num}\nnew handshake{plural}!').format(num=new_shakes, plural=s)
|
return self._('Cool, we got {num} new handshake{plural}!').format(num=new_shakes, plural=s)
|
||||||
|
|
||||||
def on_rebooting(self):
|
def on_rebooting(self):
|
||||||
return self._("Ops, something\nwent wrong ...\nRebooting ...")
|
return self._("Ops, something went wrong ... Rebooting ...")
|
||||||
|
|
||||||
def on_log(self, log):
|
def on_log(self, log):
|
||||||
status = self._('Kicked {num} stations\n').format(num=log.deauthed)
|
status = self._('Kicked {num} stations\n').format(num=log.deauthed)
|
||||||
@ -137,3 +137,6 @@ class Voice:
|
|||||||
deauthed=log.deauthed,
|
deauthed=log.deauthed,
|
||||||
associated=log.associated,
|
associated=log.associated,
|
||||||
handshakes=log.handshakes)
|
handshakes=log.handshakes)
|
||||||
|
|
||||||
|
def custom(self, text):
|
||||||
|
return self._(text)
|
||||||
|
@ -10,3 +10,4 @@ file_read_backwards
|
|||||||
numpy
|
numpy
|
||||||
inky
|
inky
|
||||||
smbus
|
smbus
|
||||||
|
pillow
|
||||||
|
@ -9,5 +9,3 @@ if ifconfig | grep usb0 | grep RUNNING; then
|
|||||||
else
|
else
|
||||||
sudo -H -u root /usr/bin/screen -dmS pwnagotchi -c /root/pwnagotchi/data/screenrc.auto
|
sudo -H -u root /usr/bin/screen -dmS pwnagotchi -c /root/pwnagotchi/data/screenrc.auto
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user