▼
English
Deutsch
Plattdüütsch
Lëtzebuergesch
Nederlands
Dansk
Svenska
Bokmål
Nynorsk
Íslenska
Føroyskt
Español
Català
Galego
Português
Français
Italiano
Latina
Română
Rumantsch
Gaeilge
Suomi
Magyar
Euskara
Esperanto
日本語
简体中文
繁體中文(台灣)
繁體中文(香港)
粵語
한국어
Tiếng Việt
ไทย
Bahasa Indonesia
Bahasa Melayu
हिन्दी
Polski
Čeština
Українська
Русский
Türkçe
العربية
עברית
Kiswahili
ʻŌlelo Hawaiʻi
tlhIngan Hol
Όλα όσα κάνουν οι φόρμες αυτού του ιστότοπου, για δέσμες ενεργειών. Κάθε απάντηση είναι JSON, συμπεριλαμβανομένων των σφαλμάτων, ώστε να μη χρειάζεται ποτέ να μαντεύετε αν ένα σώμα είναι αποτέλεσμα ή εξήγηση.
POST στο τελικό σημείο είτε με παραμέτρους φόρμας είτε με σώμα JSON. Τα δύο είναι ισοδύναμα· διαλέξτε όποιο διευκολύνει τα εργαλεία σας. Η παράμετρος action επιλέγει τι θα γίνει. Χρησιμοποιήστε --data-urlencode για οτιδήποτε πληκτρολόγησε άνθρωπος — κείμενο επικόλλησης, URL, μετάφραση — επειδή το -d στέλνει την τιμή ακατέργαστη και θα κοπεί στο πρώτο &. Το απλό -d είναι εντάξει για σταθερές τιμές όπως το ίδιο το action. Το wget δεν έχει καθόλου --data-urlencode, οπότε με wget είτε κωδικοποιήστε μόνοι σας τέτοιες τιμές με ποσοστά είτε στείλτε σώμα JSON, που δεν χρειάζεται κωδικοποίηση.
curl -X POST https://0wx.eu/api.cgi \
-d action=paste --data-urlencode 'content=hello & world'
curl -X POST https://0wx.eu/api.cgi \
-H 'Content-Type: application/json' \
-d '{"action":"paste","content":"hello & world"}'
wget -qO- --header='Content-Type: application/json' \
--post-data '{"action":"paste","content":"hello & world"}' https://0wx.eu/api.cgi
Σε σώμα φόρμας το & διαχωρίζει παραμέτρους, και το curl -d δεν κωδικοποιεί ό,τι του δίνετε. Ένα URL με συμβολοσειρά ερωτήματος κόβεται επομένως στο πρώτο του &, και το υπόλοιπο φτάνει ως ξεχωριστές παράμετροι. Χρησιμοποιήστε --data-urlencode, ή στείλτε JSON. Οι αδέσποτες παράμετροι απορρίπτονται αντί να αγνοούνται, ώστε αυτό να αποτυγχάνει ηχηρά αντί να αποθηκεύει μισό σύνδεσμο.
# wrong -- the value is cut at the &
curl -X POST https://0wx.eu/api.cgi \
-d action=tinyurl -d 'url=https://example.com/?a=1&b=2'
# right
curl -X POST https://0wx.eu/api.cgi \
-d action=tinyurl --data-urlencode 'url=https://example.com/?a=1&b=2'
# also right -- JSON needs no escaping
curl -X POST https://0wx.eu/api.cgi -H 'Content-Type: application/json' \
-d '{"action":"tinyurl","url":"https://example.com/?a=1&b=2"}'
# wget has no --data-urlencode, so percent-encode it yourself...
wget -qO- --post-data 'action=tinyurl&url=https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2' https://0wx.eu/api.cgi
# ...or send JSON, which needs no encoding at all
wget -qO- --header='Content-Type: application/json' \
--post-data '{"action":"tinyurl","url":"https://example.com/?a=1&b=2"}' https://0wx.eu/api.cgi
Προαιρετικό. Χωρίς κλειδί ένα αίτημα είναι ανώνυμο και συμπεριφέρεται ακριβώς όπως ένας ανώνυμος επισκέπτης — το αποτέλεσμα είναι δημόσιο ούτως ή άλλως, η μόνη διαφορά είναι αν καταλήγει στη λίστα αρχείων σας. Δημιουργήστε κλειδί στη σελίδα του λογαριασμού σας και στείλτε το ως bearer token· η αποστολή του ως παράμετρος apikey λειτουργεί επίσης, αλλά ένα κλειδί σε συμβολοσειρά ερωτήματος καταλήγει σε αρχεία καταγραφής διακομιστή και στο ιστορικό του προγράμματος περιήγησης.
curl -X POST https://0wx.eu/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-d action=whoami
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=whoami' https://0wx.eu/api.cgi
| action | Παράμετροι | Περιγραφή |
|---|---|---|
whoami | — | Επιβεβαιώνει ότι ένα κλειδί λειτουργεί και αναφέρει τα τρέχοντα όρια. Δεν κοστίζει τίποτα· καλέστε το πρώτο. |
ip | — | Αναφέρει τη διεύθυνσή σας, το PTR της, τη χώρα, την περιφέρεια και την πόλη όπου γεωεντοπίζεται, τις συντεταγμένες, και τον user agent που στείλατε. Δεν χρειάζεται κλειδί και απαντά το ίδιο με ή χωρίς. Σκόπιμα στενότερο από την ιστοσελίδα: χωρίς WHOIS, χωρίς ζώνη DNS και χωρίς αναζητήσεις σε λίστες αποκλεισμού, ώστε η κλήση του να μην κοστίζει στον διακομιστή τίποτα πέρα από μια τοπική ανάγνωση βάσης δεδομένων. |
upload | file (επαναλαμβανόμενο), resize, lifetime, gallery ή g * | Μεταφορτώνει ένα ή περισσότερα αρχεία. Πρέπει να είναι multipart/form-data. Η ονομασία μιας συλλογής τα τοποθετεί απευθείας σε αυτήν και επιστρέφει το id της. |
tinyurl | url, lifetime | Συντομεύει ένα URL. |
hugeurl | url, lifetime | Επιμηκύνει ένα URL, παράλογα, επίτηδες. |
paste | content, lifetime | Αποθηκεύει ένα τμήμα κειμένου και επιστρέφει σύνδεσμο προς αυτό. |
translate | content, to, from | Μεταφράζει κείμενο. Τα to και from είναι κωδικοί από την ενέργεια langs — σημειώστε ότι δεν είναι πάντα κωδικοί χωρών: τα δανικά είναι da, όχι dk. Το from μπορεί να παραλειφθεί ή να δοθεί ως auto, που ζητά από το backend να ανιχνεύσει τη γλώσσα· η παροχή του δίνει καλύτερο αποτέλεσμα σε σύντομο κείμενο. |
langs | Απαριθμεί τις γλώσσες που δέχεται το translate, ως supported_langs: ένα αντικείμενο ανά γλώσσα, κωδικός προς όνομα, με τη σειρά που τις προσφέρει ο ιστότοπος. Δεν χρειάζεται κλειδί API. | |
dyndns | key, ip, format | Ενημερώνει ένα δυναμικό όνομα DNS. Η μόνη ενέργεια που δεν χρειάζεται κλειδί API: καλείται από δρομολογητή, που έχει ένα πεδίο για URL και κανέναν τρόπο να στείλει κεφαλίδα. Το key είναι το κλειδί ενημέρωσης ανά όνομα που εμφανίζεται στον λογαριασμό σας, όχι το κλειδί API σας. Παραλείψτε το ip και χρησιμοποιείται η διεύθυνση από την οποία καλείτε. Η απάντηση είναι η de facto λέξη dyndns2 — good, nochg, badauth, abuse ή dnserr — ως απλό κείμενο, επειδή αυτό αναλύουν οι δρομολογητές· προσθέστε format=json για το συνηθισμένο JSON. |
listfiles * | page, g | Απαριθμεί τα αρχεία σας με όλα όσα δείχνει ο πίνακας Πληροφοριών, συν τη μικρογραφία και τον άμεσο σύνδεσμο. Το g το περιορίζει σε μία συλλογή, ή none για αρχεία σε καμία συλλογή. |
listpastes * | page | Απαριθμεί τις επικολλήσεις σας, με προεπισκόπηση 200 χαρακτήρων για καθεμία αντί για ολόκληρο το σώμα. |
listurls * | page | Απαριθμεί τα σύντομα και τεράστια URL σας, με τη διεύθυνση στην οποία οδηγεί το καθένα. |
otl * | share | Δημιουργεί σύνδεσμο μίας χρήσης προς ένα από τα αρχεία σας. Κάθε κλήση δημιουργεί νέο, οπότε δίνοντας το ίδιο αρχείο σε δύο άτομα προκύπτουν δύο σύνδεσμοι. |
listotl * | page | Απαριθμεί τους ενεργούς συνδέσμους μίας χρήσης σας, το αρχείο στο οποίο οδηγεί ο καθένας, και αν αυτό το αρχείο έχει έκτοτε λήξει. |
listgalleries * | — | Απαριθμεί τις συλλογές σας με τα id, τα ονόματα, τον αριθμό αρχείων και την κατάσταση δημοσίευσής τους. |
gallery * | g, publish | Αναφέρει την κατάσταση δημοσίευσης μιας συλλογής, και την αλλάζει όταν δίνεται το publish. |
move * | share (επαναλαμβανόμενο), gallery ή g | Μετακινεί αρχεία σε συλλογή, με όνομα (δημιουργείται αν είναι νέα) ή με id. Αν παραλειφθούν και τα δύο, τα επιστρέφει στην κύρια λίστα. |
delete * | share (επαναλαμβανόμενο), g, otl, withfiles | Διαγράφει αρχεία, επικολλήσεις, σύντομα URL, συλλογές, συνδέσμους μίας χρήσης ή οποιονδήποτε συνδυασμό. Ένα share αντιστοιχίζεται πρώτα με τα αρχεία σας και μετά με τις επικολλήσεις και τους συνδέσμους σας, ώστε ο καλών να μη χρειάζεται να τα ταξινομήσει κατά τύπο. Οι σύνδεσμοι μίας χρήσης πηγαίνουν στο otl, ξεχωριστά: η αφαίρεση ενός συνδέσμου δεν πρέπει να συγχέεται με τη διαγραφή του αρχείου στο οποίο οδηγεί. |
* Αυτές οι ενέργειες χρειάζονται κλειδί API. Διαβάζουν ή αλλάζουν τα δεδομένα ενός λογαριασμού, οπότε δεν υπάρχει ανώνυμη μορφή τους.
Τα share και g δέχονται επαναλαμβανόμενο πεδίο, πίνακα JSON ή λίστα χωρισμένη με κόμματα — όποιο διευκολύνει τα εργαλεία σας. Τα διπλότυπα αγνοούνται.
curl -X POST https://0wx.eu/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=move -d share=Ab3xK9pQ -d share=Zz7yT2mN --data-urlencode 'gallery=Holiday 2026'
curl -X POST https://0wx.eu/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=delete -d 'share=Ab3xK9pQ,Zz7yT2mN'
curl -X POST https://0wx.eu/api.cgi -H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_KEY' \
-d '{"action":"move","share":["Ab3xK9pQ","Zz7yT2mN"],"g":7}'
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=delete&share=Ab3xK9pQ,Zz7yT2mN' https://0wx.eu/api.cgi
Όπου κατονομάζεται συλλογή — στο upload ή στο move — δίνεται με τους ίδιους δύο τρόπους: g για υπάρχον id, ή gallery για όνομα, που δημιουργείται αν είναι νέο. Αν σταλούν και τα δύο, υπερισχύει το g. Η απάντηση φέρει το id της συλλογής. Σημειώστε ότι η διαγραφή μιας συλλογής αφαιρεί μόνο τη συλλογή, αφήνοντας τα αρχεία της στην κύρια λίστα — σε αντίθεση με τη φόρμα του ιστού, που τα διαγράφει αφού ρωτήσει. Περάστε withfiles=true για να διαγραφούν και αυτά: μια δέσμη ενεργειών που τακτοποιεί τις ομαδοποιήσεις της δεν πρέπει να χάσει τις μεταφορτώσεις κατά λάθος.
curl -X POST https://0wx.eu/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-F action=upload -F file=@photo.jpg --form-string 'gallery=Holiday 2026'
curl -X POST https://0wx.eu/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=gallery -d g=7 -d publish=true
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=gallery&g=7&publish=true' https://0wx.eu/api.cgi
Οι μεταφορτώσεις δεν μπορούν να χρησιμοποιήσουν το σώμα JSON, επειδή ένα αρχείο πρέπει να σταλεί ως multipart. Επαναλάβετε το τμήμα file για να στείλετε πολλά μαζί. Κάθε αρχείο αναφέρεται ξεχωριστά: η απάντηση φέρει μια λίστα files με όσα έγιναν δεκτά και μια λίστα rejected με όσα δεν έγιναν, ώστε μια μερική επιτυχία να είναι και πάλι επιτυχία.
curl -X POST https://0wx.eu/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-F action=upload \
-F file=@photo.jpg \
-F file=@notes.txt \
-F lifetime=7d
Δεν υπάρχει μορφή wget γι' αυτό. Το wget δεν μπορεί να χτίσει σώμα multipart/form-data — δεν έχει αντίστοιχο του -F του curl — και οι μεταφορτώσεις πρέπει να είναι multipart. Χρησιμοποιήστε curl, ή συναρμολογήστε μόνοι σας το σώμα και το boundary και στείλτε το με --post-file.
Προαιρετικό σε κάθε ενέργεια που αποθηκεύει κάτι. Δέχεται σκέτα δευτερόλεπτα, ή αριθμό ακολουθούμενο από m, h ή d — τις ίδιες μορφές που δέχονται οι φόρμες του ιστού. Παραλείψτε το ή δώστε 0 για να διατηρηθεί το στοιχείο επ' αόριστον.
Κάθε απάντηση είναι ένα αντικείμενο JSON με πεδίο ok. Σε επιτυχία φέρει το αποτέλεσμα· σε αποτυχία φέρει έναν σταθερό κωδικό error και ένα αναγνώσιμο message. Διακλαδωθείτε με βάση τον κωδικό, καταγράψτε το μήνυμα.
{"ok":true,"type":"paste","share":"Ab3xK9pQ",
"url":"https://0wx.eu/p/Ab3xK9pQ","bytes":11}
{"ok":false,"error":"url_too_long",
"message":"URL exceeds the maximum length."}
Όπου ένα αρχείο τις φέρει, το listfiles προσθέτει file_tags στην καταχώρισή του: καλλιτέχνη, τίτλο και άλμπουμ, που διαβάστηκαν από ID3, σχόλια Vorbis ή άτομα MP4 όταν μεταφορτώθηκε το αρχείο. Το κλειδί απουσιάζει αντί να είναι null όταν δεν υπάρχει τίποτα να αναφερθεί, που είναι τα περισσότερα αρχεία, οπότε ελέγξτε το πριν το διαβάσετε. Μεμονωμένα πεδία μπορεί επίσης να λείπουν — ένα αρχείο μπορεί να έχει τίτλο και όχι άλμπουμ. Τίποτα άλλο από τα μεταδεδομένα του αρχείου δεν εκτίθεται: μια αγορά iTunes καταγράφει το όνομα και το Apple ID του αγοραστή, και αυτά σκόπιμα δεν διαβάζονται ποτέ.
{"ok":true,"type":"files","total":2,"page":1,"pages":1,"files":[
{"share":"Ab3xK9pQ","name":"autobahn.mp3","mime":"audio/mpeg",
"bytes":8123456,"url":"https://0wx.eu/i/Ab3xK9pQ",
"file_tags":{"artist":"Kraftwerk","title":"Autobahn","album":"Autobahn"}},
{"share":"Zz7yT2mN","name":"photo.jpg","mime":"image/jpeg",
"bytes":204800,"url":"https://0wx.eu/i/Zz7yT2mN"}
]}
| error | HTTP | Περιγραφή |
|---|---|---|
unknown_action | 400 | Δεν υπάρχει τέτοια ενέργεια. |
bad_json | 400 | Το σώμα δεν ήταν έγκυρο JSON, ή κάποιο πεδίο περιείχε ένθετη δομή. |
unexpected_parameter | 400 | Έφτασε μια παράμετρος που αυτή η ενέργεια δεν δέχεται — συνήθως ένα μη κωδικοποιημένο & σε μια τιμή. Το μήνυμα κατονομάζει τις παραμέτρους. |
bad_key | 401 | Το κλειδί δεν αναγνωρίστηκε. Ένα λάθος κλειδί απορρίπτεται αντί να αντιμετωπίζεται σιωπηλά ως ανώνυμο. |
bad_url | 400 | Το URL είναι κακοσχηματισμένο, ή χρησιμοποιεί σχήμα διαφορετικό από http(s), ftp ή gopher. |
bad_lifetime | 400 | Η διάρκεια ζωής δεν ήταν αριθμός ή αριθμός ακολουθούμενος από m, h ή d. |
no_content | 400 | Δεν στάλθηκε τίποτα για αποθήκευση. |
url_too_long | 413 | Το URL είναι μεγαλύτερο από το όριο. |
paste_too_long | 413 | Το κείμενο είναι μεγαλύτερο από το όριο επικόλλησης. Τα όρια μετρώνται σε byte UTF-8, οπότε το μη λατινικό κείμενο μετρά περισσότερο από όσο υποδηλώνει ο αριθμός χαρακτήρων του. |
too_many_files | 413 | Περισσότερα αρχεία από όσα δέχεται μία κλήση. |
no_usable_files | 415 | Όλα τα αρχεία απορρίφθηκαν. Δείτε τη λίστα rejected για τον λόγο. |
backend_unavailable | 502 | Το backend μετάφρασης δεν απάντησε. |
internal | 500 | Κάτι απέτυχε απροσδόκητα. Έχει καταγραφεί. |
Καλέστε το whoami για να διαβάσετε τις τρέχουσες τιμές αντί να τις κωδικοποιείτε σταθερά — ορίζονται από τον διαχειριστή του διακομιστή και μπορεί να αλλάξουν. Τα μεγέθη είναι byte UTF-8.
Το 0wx.sh περιτυλίγει όλα τα παραπάνω. Είναι απλό κέλυφος POSIX και δεν χρειάζεται τίποτα πέρα από curl, και είναι αρκετά σύντομο για να το διαβάσετε πριν το εκτελέσετε — το σωστό να κάνει κανείς με μια δέσμη ενεργειών που θα κρατά το κλειδί API σας. Βάλτε το κλειδί στο OWX_KEY αντί να περνάτε --key, και μένει εκτός του ιστορικού του κελύφους σας.
wget https://0wx.eu/clients/0wx.sh chmod +x 0wx.sh export OWX_KEY=YOUR_KEY ./0wx.sh help ./0wx.sh paste --content 'hello & world'
Το 0wx.py κάνει τα ίδια με τον πελάτη κελύφους, αλλά αναλύει την απάντηση και τυπώνει τι σημαίνουν τα πεδία αντί να σας δίνει ακατέργαστο JSON — προσθέστε --json όταν θέλετε πίσω την ακατέργαστη μορφή. Μόνο τυπική βιβλιοθήκη: χωρίς requests, τίποτα προς εγκατάσταση. Αν γράφετε δικό σας πελάτη, οι συναρτήσεις του send() και report() είναι τα μέρη που αξίζει να διαβάσετε: μαζί δείχνουν πώς χτίζεται το αίτημα, πώς εξάγεται το μήνυμα από ένα αποτυχημένο, και τι περιέχουν οι απαντήσεις.
wget https://0wx.eu/clients/0wx.py chmod +x 0wx.py export OWX_KEY=YOUR_KEY ./0wx.py listfiles ./0wx.py listfiles --json | jq '.files[].url'
Το 0wx.pl κάνει τα ίδια με τον πελάτη Python και τυπώνει την ίδια έξοδο. Μόνο βασικές ενότητες — τα HTTP::Tiny και JSON::PP συνοδεύουν την Perl από την 5.14, οπότε δεν υπάρχει τίποτα προς εγκατάσταση. Αξίζει να διαβαστεί δίπλα στον πελάτη Python αν γράφετε δικό σας: οι δύο γλώσσες αποτυγχάνουν διαφορετικά σε ένα χαλασμένο αίτημα, και τα δύο σενάρια λένε πού.
wget https://0wx.eu/clients/0wx.pl chmod +x 0wx.pl export OWX_KEY=YOUR_KEY ./0wx.pl listfiles
Το 0wx.ps1 είναι το αντίστοιχο του πελάτη Python για Windows: ίδιες εντολές, ίδια έξοδος, και αναλύει την απάντηση αντί να σας δίνει ακατέργαστο JSON — προσθέστε --json γι' αυτό. Είναι γραμμένο για το Windows PowerShell που υπάρχει ήδη στο μηχάνημα, οπότε δεν υπάρχει τίποτα προς εγκατάσταση, και τρέχει αναλλοίωτο σε PowerShell 7. Ίσως χρειαστείτε Set-ExecutionPolicy -Scope Process Bypass στο παράθυρο από το οποίο το τρέχετε, που είναι τα Windows να ρωτούν αν όντως θέλατε να τρέξετε μια δέσμη ενεργειών που κατεβάσατε — εύλογη ερώτηση, και το αρχείο είναι αρκετά σύντομο για να το διαβάσετε πρώτα.
$env:OWX_KEY = 'YOUR_KEY' .\0wx.ps1 listfiles .\0wx.ps1 paste --content 'hello & world' .\0wx.ps1 upload --file .\holiday.jpg --gallery 'Holiday 2026'
Το 0wx.html είναι το ίδιο σύνολο καρτελών με τον πελάτη επιφάνειας εργασίας, ως τρία αρχεία — μια σελίδα, ένα φύλλο στυλ και μια δέσμη ενεργειών — χωρίς εγκατάσταση, χωρίς framework, και χωρίς να φορτώνεται τίποτα από πουθενά αλλού εκτός από αυτόν τον ιστότοπο. Τρία αντί για ένα επειδή η Content-Security-Policy του ιστότοπου απαγορεύει ενσωματωμένο σενάριο και στυλ, κάτι που αξίζει να διατηρηθεί. Μπορείτε να αποθέσετε αρχεία πάνω του. Πρέπει να ανοιχτεί από εδώ και όχι να αποθηκευτεί και να ανοιχτεί από τον δίσκο σας: το API δεν στέλνει κεφαλίδες cross-origin, οπότε ένα τοπικό αντίγραφο θα έβλεπε κάθε αίτημα να απορρίπτεται από το πρόγραμμα περιήγησής σας πριν καν φύγει. Το κλειδί κρατιέται στη μνήμη εκτός αν επιλέξετε το πλαίσιο για να το θυμάται.
https://0wx.eu/clients/0wx.html
Το 0wx-gui.ps1 είναι το ίδιο σύνολο καρτελών με τον πελάτη επιφάνειας εργασίας, σχεδιασμένο με WinForms — που σημαίνει τίποτα απολύτως προς εγκατάσταση, αφού είναι ήδη μέρος των Windows. Βάλτε το στον ίδιο φάκελο με το 0wx.ps1: το παράθυρο δανείζεται τον χειρισμό αιτημάτων εκείνου του αρχείου αντί να κουβαλά δεύτερο αντίγραφο, οπότε χρειάζονται και τα δύο. Τα Windows θα ρωτήσουν πριν τρέξουν μια δέσμη ενεργειών που δεν έγραψαν τα ίδια, που είναι εύλογη ερώτηση· και τα δύο αρχεία είναι αρκετά σύντομα για να τα διαβάσετε πριν απαντήσετε.
powershell -ExecutionPolicy Bypass -File .\0wx-gui.ps1
Το 0wx-gtk.pl είναι ένα μικρό παράθυρο GTK με καρτέλες για μεταφόρτωση, επικόλληση, συντόμευση και περιήγηση στα αρχεία σας — ως λίστα ή ως συλλογή μικρογραφιών, φιλτραρισμένη ανά συλλογή. Είναι ο μόνος πελάτης εδώ που χρειάζεται κάτι εγκατεστημένο — τις συνδέσεις GTK3 της Perl — κάτι που αξίζει να γνωρίζετε δίπλα στο παράθυρο Windows παραπάνω, αφού εκείνο δεν χρειάζεται απολύτως τίποτα. Όλα τα άλλα που χρησιμοποιεί συνοδεύουν την Perl. Το κλειδί κρατιέται μόνο στη μνήμη: το κλείσιμο του παραθύρου το ξεχνά, και ο ορισμός του OWX_KEY το συμπληρώνει κατά την εκκίνηση. Ό,τι κι αν σας δείχνει, η ακατέργαστη απάντηση του διακομιστή απέχει ένα κλικ στο “Server reply”.
apt install libgtk3-perl # or: dnf install perl-Gtk3 wget https://0wx.eu/clients/0wx-gtk.pl chmod +x 0wx-gtk.pl OWX_KEY=YOUR_KEY ./0wx-gtk.pl
Το 0wx-android.apk κάνει ό,τι κάνουν και οι άλλοι πελάτες, από τηλέφωνο: μεταφόρτωση, επικόλληση, συντόμευση, μετάφραση και περιήγηση στα αρχεία σας ως λίστα ή συλλογή. Η κοινοποίηση ενός αρχείου σε αυτό από οποιαδήποτε άλλη εφαρμογή το μεταφορτώνει, και η κοινοποίηση κειμένου το αποθηκεύει ως επικόλληση. Δεν βρίσκεται σε κανένα κατάστημα εφαρμογών, οπότε η συσκευή σας θα ζητήσει άδεια για την εγκατάστασή του — ερώτηση που αξίζει να παίρνετε στα σοβαρά γενικά, και ο λόγος που ολόκληρος ο πηγαίος κώδικας βρίσκεται επίσης εδώ: ανοίξτε τον στο Android Studio και χτίστε τον μόνοι σας αντί να εμπιστευτείτε το αρχείο. Το χτίσιμο χρειάζεται JDK 21· το BUILDING.md μέσα εξηγεί γιατί.
https://0wx.eu/clients/0wx-android.apk # install it https://0wx.eu/clients/0wx-android.zip # build it yourself
Σκόπιμα δεν υπάρχει ενέργεια απομακρυσμένης λήψης. Θα έκανε τον διακομιστή να ανακτά ένα URL της επιλογής του καλούντος, που είναι επιφάνεια πλαστογράφησης αιτημάτων, και μια δέσμη ενεργειών μπορεί να το εκμεταλλευτεί πολύ πιο έντονα από μια φόρμα. Μεταφορτώστε το αρχείο μόνοι σας αντί γι' αυτό.