▼
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 है, त्रुटियाँ भी, इसलिए आपको कभी अनुमान नहीं लगाना पड़ता कि बॉडी परिणाम है या स्पष्टीकरण।
एंडपॉइंट पर फ़ॉर्म पैरामीटर या JSON बॉडी के साथ POST करें। दोनों समतुल्य हैं; जो आपके टूलिंग के लिए आसान हो उसे चुनें। action पैरामीटर तय करता है कि क्या करना है। किसी व्यक्ति द्वारा टाइप की गई हर चीज़ के लिए --data-urlencode का उपयोग करें — पेस्ट टेक्स्ट, URL, अनुवाद — क्योंकि -d मान को कच्चा भेजता है और यह पहले & पर कट जाएगा। action जैसे निश्चित मानों के लिए सादा -d ठीक है। wget में --data-urlencode बिल्कुल नहीं है, इसलिए wget के साथ या तो ऐसे मानों को स्वयं प्रतिशत-एन्कोड करें या JSON बॉडी भेजें, जिसे किसी एन्कोडिंग की आवश्यकता नहीं।
curl -X POST https://0wx.cat/api.cgi \
-d action=paste --data-urlencode 'content=hello & world'
curl -X POST https://0wx.cat/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.cat/api.cgi
फ़ॉर्म बॉडी में & पैरामीटर अलग करता है, और curl -d आपके दिए गए मान को एन्कोड नहीं करता। इसलिए क्वेरी स्ट्रिंग वाला URL अपने पहले & पर कट जाता है, और बाकी अलग पैरामीटर के रूप में पहुँचता है। --data-urlencode का उपयोग करें, या JSON भेजें। अनचाहे पैरामीटर अनदेखे करने के बजाय अस्वीकार किए जाते हैं, इसलिए यह आधा लिंक संग्रहीत करने के बजाय स्पष्ट रूप से विफल होता है।
# wrong -- the value is cut at the &
curl -X POST https://0wx.cat/api.cgi \
-d action=tinyurl -d 'url=https://example.com/?a=1&b=2'
# right
curl -X POST https://0wx.cat/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.cat/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.cat/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.cat/api.cgi
वैकल्पिक। कुंजी के बिना अनुरोध गुमनाम होता है और ठीक एक गुमनाम आगंतुक की तरह व्यवहार करता है — परिणाम किसी भी स्थिति में सार्वजनिक है, अंतर केवल यह है कि यह आपकी फ़ाइल सूची में आता है या नहीं। अपने खाता पृष्ठ पर एक कुंजी बनाएँ और इसे bearer टोकन के रूप में भेजें; इसे apikey पैरामीटर के रूप में देना भी काम करता है, लेकिन क्वेरी स्ट्रिंग में कुंजी सर्वर लॉग और ब्राउज़र इतिहास में पहुँच जाती है।
curl -X POST https://0wx.cat/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-d action=whoami
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=whoami' https://0wx.cat/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 दिया जा सकता है, जो बैकएंड से भाषा पहचानने को कहता है; इसे देने से छोटे टेक्स्ट पर बेहतर परिणाम मिलता है। |
langs | translate द्वारा स्वीकृत भाषाएँ supported_langs के रूप में सूचीबद्ध करता है: प्रति भाषा एक ऑब्जेक्ट, कोड से नाम, उसी क्रम में जिसमें साइट उन्हें प्रस्तुत करती है। API कुंजी की आवश्यकता नहीं। | |
dyndns | key, ip, format | एक डायनामिक DNS नाम अपडेट करता है। एकमात्र क्रिया जिसे API कुंजी नहीं चाहिए: इसे राउटर कॉल करता है, जिसके पास URL के लिए एक फ़ील्ड है और हेडर भेजने का कोई तरीका नहीं। key आपके खाते में दिखाई गई प्रति-नाम अपडेट कुंजी है, आपकी API कुंजी नहीं। ip छोड़ें तो जिस पते से आप कॉल कर रहे हैं वह उपयोग होता है। उत्तर वास्तविक dyndns2 शब्द है — good, nochg, badauth, abuse या dnserr — सादे टेक्स्ट के रूप में, क्योंकि राउटर यही पार्स करते हैं; सामान्य JSON के लिए format=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.cat/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.cat/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=delete -d 'share=Ab3xK9pQ,Zz7yT2mN'
curl -X POST https://0wx.cat/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.cat/api.cgi
जहाँ भी गैलरी का नाम दिया जाता है — upload पर या move पर — उसे इन्हीं दो तरीकों से दिया जाता है: मौजूदा id के लिए g, या नाम के लिए gallery, जो नया होने पर बनाया जाता है। यदि दोनों भेजे जाएँ, तो g जीतता है। उत्तर में गैलरी id होती है। ध्यान दें कि गैलरी हटाने से केवल गैलरी हटती है, उसकी फ़ाइलें मुख्य सूची में रह जाती हैं — वेब फ़ॉर्म के विपरीत, जो पूछकर उन्हें हटा देता है। उन्हें भी हटाने के लिए withfiles=true दें: अपने समूहों को व्यवस्थित करने वाली स्क्रिप्ट को गलती से अपलोड नहीं खोने चाहिए।
curl -X POST https://0wx.cat/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-F action=upload -F file=@photo.jpg --form-string 'gallery=Holiday 2026'
curl -X POST https://0wx.cat/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.cat/api.cgi
अपलोड JSON बॉडी का उपयोग नहीं कर सकते, क्योंकि फ़ाइल को multipart के रूप में भेजना होता है। एक साथ कई भेजने के लिए file भाग को दोहराएँ। हर फ़ाइल की अलग रिपोर्ट होती है: उत्तर में स्वीकृत फ़ाइलों की files सूची और अस्वीकृत फ़ाइलों की rejected सूची होती है, इसलिए आंशिक सफलता भी सफलता है।
curl -X POST https://0wx.cat/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 बॉडी नहीं बना सकता — इसमें curl के -F का कोई समकक्ष नहीं है — और अपलोड multipart होने चाहिए। curl का उपयोग करें, या बॉडी और बाउंड्री स्वयं बनाएँ और इसे --post-file से भेजें।
हर उस क्रिया पर वैकल्पिक जो कुछ संग्रहीत करती है। केवल सेकंड, या m, h या d के बाद वाली संख्या स्वीकार करता है — वही रूप जो वेब फ़ॉर्म लेते हैं। आइटम को अनिश्चित काल तक रखने के लिए इसे छोड़ें या 0 दें।
हर उत्तर ok फ़ील्ड वाला एक JSON ऑब्जेक्ट है। सफलता पर इसमें परिणाम होता है; विफलता पर इसमें एक स्थिर error कोड और एक मानव-पठनीय message होता है। कोड पर शाखा करें, संदेश लॉग करें।
{"ok":true,"type":"paste","share":"Ab3xK9pQ",
"url":"https://0wx.cat/p/Ab3xK9pQ","bytes":11}
{"ok":false,"error":"url_too_long",
"message":"URL exceeds the maximum length."}
जहाँ फ़ाइल में ये होते हैं, listfiles उसकी प्रविष्टि में file_tags जोड़ता है: कलाकार, शीर्षक और एल्बम, जो फ़ाइल अपलोड होने पर ID3, Vorbis टिप्पणियों या MP4 atoms से पढ़े गए थे। जब बताने को कुछ न हो, जो अधिकांश फ़ाइलों का हाल है, तो कुंजी 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.cat/i/Ab3xK9pQ",
"file_tags":{"artist":"Kraftwerk","title":"Autobahn","album":"Autobahn"}},
{"share":"Zz7yT2mN","name":"photo.jpg","mime":"image/jpeg",
"bytes":204800,"url":"https://0wx.cat/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 | टेक्स्ट पेस्ट सीमा से बड़ा है। सीमाएँ UTF-8 बाइट में मापी जाती हैं, इसलिए गैर-लैटिन टेक्स्ट अपने अक्षरों की संख्या से अधिक गिना जाता है। |
too_many_files | 413 | एक कॉल में स्वीकार्य से अधिक फ़ाइलें। |
no_usable_files | 415 | हर फ़ाइल अस्वीकार कर दी गई। कारण के लिए rejected सूची देखें। |
backend_unavailable | 502 | अनुवाद बैकएंड ने उत्तर नहीं दिया। |
internal | 500 | कुछ अप्रत्याशित रूप से विफल हुआ। इसे लॉग कर लिया गया है। |
वर्तमान मान हार्डकोड करने के बजाय पढ़ने के लिए whoami कॉल करें — वे सर्वर ऑपरेटर द्वारा सेट किए जाते हैं और बदल सकते हैं। आकार UTF-8 बाइट में हैं।
0wx.sh ऊपर बताए गए सब कुछ को समेटता है। यह सादा POSIX शेल है और इसे curl के अलावा कुछ नहीं चाहिए, और यह चलाने से पहले पढ़ने लायक छोटा है — जो उस स्क्रिप्ट के साथ करना सही है जिसके पास आपकी API कुंजी होगी। --key देने के बजाय कुंजी को OWX_KEY में रखें, और यह आपके शेल इतिहास से बाहर रहती है।
wget https://0wx.cat/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.cat/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 से Perl के साथ आते हैं, इसलिए इंस्टॉल करने को कुछ नहीं। यदि आप अपना क्लाइंट लिख रहे हैं तो Python क्लाइंट के साथ पढ़ने लायक: दोनों भाषाएँ टूटे अनुरोध पर अलग तरह से विफल होती हैं, और दोनों स्क्रिप्ट बताती हैं कि कहाँ।
wget https://0wx.cat/clients/0wx.pl chmod +x 0wx.pl export OWX_KEY=YOUR_KEY ./0wx.pl listfiles
0wx.ps1 Windows के लिए Python क्लाइंट का समकक्ष है: वही कमांड, वही आउटपुट, और यह आपको कच्चा 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 डेस्कटॉप क्लाइंट जैसा ही टैब सेट है, तीन फ़ाइलों के रूप में — एक पृष्ठ, एक स्टाइलशीट और एक स्क्रिप्ट — बिना इंस्टॉल, बिना फ्रेमवर्क, और इस साइट के अलावा कहीं से कुछ लोड किए बिना। एक के बजाय तीन इसलिए क्योंकि साइट की Content-Security-Policy इनलाइन स्क्रिप्ट और स्टाइल की अनुमति नहीं देती, जो बनाए रखने लायक है। इस पर फ़ाइलें छोड़ी जा सकती हैं। इसे सहेजकर अपनी डिस्क से खोलने के बजाय यहीं से खोलना होगा: API कोई cross-origin हेडर नहीं भेजता, इसलिए स्थानीय प्रति का हर अनुरोध आपके ब्राउज़र द्वारा निकलने से पहले ही अस्वीकार कर दिया जाएगा। जब तक आप इसे याद रखने का बॉक्स टिक न करें, कुंजी मेमोरी में रखी जाती है।
https://0wx.cat/clients/0wx.html
0wx-gui.ps1 डेस्कटॉप क्लाइंट जैसा ही टैब सेट है, WinForms से बनाया गया — जिसका अर्थ है इंस्टॉल करने को बिल्कुल कुछ नहीं, क्योंकि यह पहले से Windows का हिस्सा है। इसे 0wx.ps1 के साथ एक ही फ़ोल्डर में रखें: विंडो दूसरी प्रति रखने के बजाय उस फ़ाइल की अनुरोध प्रोसेसिंग उधार लेती है, इसलिए दोनों चाहिए। Windows अपनी न लिखी स्क्रिप्ट चलाने से पहले पूछेगा, जो उचित प्रश्न है; दोनों फ़ाइलें उत्तर देने से पहले पढ़ने लायक छोटी हैं।
powershell -ExecutionPolicy Bypass -File .\0wx-gui.ps1
0wx-gtk.pl एक छोटी GTK विंडो है जिसमें अपलोड, पेस्ट, छोटा करने और अपनी फ़ाइलें ब्राउज़ करने के टैब हैं — सूची के रूप में या थंबनेल गैलरी के रूप में, गैलरी के अनुसार फ़िल्टर किए। यह यहाँ एकमात्र क्लाइंट है जिसे कुछ इंस्टॉल करने की ज़रूरत है — Perl के GTK3 बाइंडिंग — जो ऊपर की Windows विंडो के साथ तुलना में जानने लायक है, क्योंकि उसे बिल्कुल कुछ नहीं चाहिए। बाकी सब जो यह उपयोग करता है Perl के साथ आता है। कुंजी केवल मेमोरी में रखी जाती है: विंडो बंद करने पर यह भूल जाती है, और OWX_KEY सेट करने पर स्टार्टअप पर भर जाती है। यह आपको जो भी दिखाए, सर्वर का कच्चा उत्तर “Server reply” के नीचे एक क्लिक दूर है।
apt install libgtk3-perl # or: dnf install perl-Gtk3 wget https://0wx.cat/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.cat/clients/0wx-android.apk # install it https://0wx.cat/clients/0wx-android.zip # build it yourself
जानबूझकर कोई दूरस्थ-प्राप्ति क्रिया नहीं है। यह सर्वर को कॉलर की पसंद का URL प्राप्त करने पर मजबूर करती, जो अनुरोध-जालसाज़ी की एक सतह है, और एक स्क्रिप्ट इसे फ़ॉर्म से कहीं अधिक ज़ोर से चला सकती है। इसके बजाय फ़ाइल स्वयं अपलोड करें।