~0wx.cat~ :: Fitxategien ostatatzea eta beste tresna erabilgarri batzuk


Igo TinyURL HugeURL Pastebin Honi buruz Salatu Hasi saioa
Euskara ▼
English English Deutsch Deutsch Plattdüütsch Plattdüütsch Lëtzebuergesch Lëtzebuergesch Nederlands Nederlands Dansk Dansk Svenska Svenska Bokmål Bokmål Nynorsk Nynorsk Íslenska Íslenska Føroyskt Føroyskt Español Español Català Català Galego Galego Português Português Français Français Italiano Italiano Latina Latina Română Română Rumantsch Rumantsch Gaeilge Gaeilge Suomi Suomi Magyar Magyar Esperanto Esperanto 日本語 日本語 简体中文 简体中文 繁體中文(台灣) 繁體中文(台灣) 繁體中文(香港) 繁體中文(香港) 粵語 粵語 한국어 한국어 Tiếng Việt Tiếng Việt ไทย ไทย Bahasa Indonesia Bahasa Indonesia Bahasa Melayu Bahasa Melayu हिन्दी हिन्दी Ελληνικά Ελληνικά Polski Polski Čeština Čeština Українська Українська Русский Русский Türkçe Türkçe العربية العربية עברית עברית Kiswahili Kiswahili ʻŌlelo Hawaiʻi ʻŌlelo Hawaiʻi tlhIngan Hol tlhIngan Hol Quenya Quenya

0wx.cat guneko funtzio guztientzat API bat dago. Scriptetan edo kontsolatik erabil dezakezu.

Gune honetako inprimakiek egiten duten guztia, scriptetarako. Erantzun guztiak JSON dira, erroreak barne, beraz ez duzu inoiz asmatu behar gorputz bat emaitza edo azalpena den.

Eskaera bat egitea

POST egin amaierako puntura inprimaki parametroekin edo JSON gorputz batekin. Biak baliokideak dira; aukeratu zure tresnek errazten dutena. action parametroak zer egin aukeratzen du. Erabili --data-urlencode pertsona batek idatzitako edozertarako — itsatsitako testua, URL bat, itzulpen bat — -d-k balioa gordin bidaltzen duelako eta lehen &-an moztuko delako. -d soila nahikoa da action bera bezalako balio finkoetarako. wget-ek ez du --data-urlencode-rik batere, beraz wget-ekin edo zeuk ehuneko-kodetu halako balioak, edo bidali JSON gorputz bat, kodetzerik behar ez duena.

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
& duten balioak

Inprimaki gorputz batean &-k parametroak bereizten ditu, eta curl -d-k ez du kodetzen ematen diozuna. Kontsulta katea duen URL bat, beraz, bere lehen &-an mozten da, eta gainerakoa parametro bereizi gisa iristen da. Erabili --data-urlencode, edo bidali JSON. Parametro galduak baztertu egiten dira, ez baztertu gabe utzi, beraz honek ozen huts egiten du esteka erdi bat gorde beharrean.

# 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
Autentifikazioa

Aukerakoa. Gakorik gabe eskaera anonimoa da eta bisitari anonimo batek bezalaxe jokatzen du — emaitza publikoa da nolanahi ere, alde bakarra zure fitxategien zerrendan agertzen den ala ez da. Sortu gako bat zure kontuaren orrian eta bidali bearer token gisa; apikey parametro gisa bidaltzeak ere funtzionatzen du, baina kontsulta katean doan gakoa zerbitzariaren erregistroetan eta nabigatzailearen historian geratzen da.

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
Ekintzak
actionParametroakAzalpena
whoami—Gako batek funtzionatzen duela baieztatzen du eta uneko mugak jakinarazten ditu. Ez du ezer kostatzen; deitu lehenik.
ip—Zure helbidea, haren PTR-a, geokokatzen den herrialdea, eskualdea eta hiria, koordenatuak eta bidali duzun user agent-a jakinarazten ditu. Ez du gakorik behar eta berdin erantzuten du gakoarekin zein gabe. Nahita web orria baino estuagoa: WHOIS-ik ez, DNS zonarik ez eta blokeo zerrendetako kontsultarik ez, beraz deitzeak tokiko datu-base irakurketa bat besterik ez dio kostatzen zerbitzariari.
uploadfile (errepikagarria), resize, lifetime, gallery edo g *Fitxategi bat edo gehiago igotzen ditu. multipart/form-data izan behar du. Galeria bat izendatuz gero, zuzenean bertan sartzen dira eta haren id-a itzultzen da.
tinyurlurl, lifetimeURL bat laburtzen du.
hugeurlurl, lifetimeURL bat luzatzen du, zentzugabeki, nahita.
pastecontent, lifetimeTestu bloke bat gordetzen du eta harako esteka itzultzen du.
translatecontent, to, fromTestua itzultzen du. to eta from langs ekintzako kodeak dira — kontuan izan ez direla beti herrialde kodeak: daniera da da, ez dk. from ez da nahitaezkoa, edo auto eman daiteke, eta orduan backendak antzemango du hizkuntza; ematen bada emaitza hobea lortzen da testu laburretan.
langstranslate-k onartzen dituen hizkuntzak zerrendatzen ditu, supported_langs gisa: objektu bat hizkuntzako, kodea izenera, guneak eskaintzen dituen ordenan. Ez du API gakorik behar.
dyndnskey, ip, formatDNS dinamiko izen bat eguneratzen du. API gakorik behar ez duen ekintza bakarra: bideratzaile batek deitzen du, URL baterako eremu bakarra duena eta goibururik bidaltzeko modurik ez duena. key zure kontuan erakusten den izen bakoitzeko eguneratze gakoa da, ez zure API gakoa. Utzi ip hutsik eta deitzen duzun helbidea erabiltzen da. Erantzuna de facto dyndns2 hitza da — good, nochg, badauth, abuse edo dnserr — testu arrunt gisa, hori baita bideratzaileek aztertzen dutena; gehitu format=json ohiko JSONerako.
listfiles *page, gZure fitxategiak zerrendatzen ditu Info panelak erakusten duen guztiarekin, gehi miniatura eta esteka zuzena. g-k galeria bakarrera mugatzen du, edo none-k galeriarik gabeko fitxategietara.
listpastes *pageZure testuak zerrendatzen ditu, bakoitzaren 200 karaktereko aurrebista batekin gorputz osoaren ordez.
listurls *pageZure URL labur eta erraldoiak zerrendatzen ditu, bakoitzak seinalatzen duen helbidearekin.
otl *shareZure fitxategietako baterako behin erabiltzeko esteka bat sortzen du. Dei bakoitzak berri bat sortzen du, beraz fitxategi bera bi pertsonari emateak bi esteka ematen ditu.
listotl *pageZure behin erabiltzeko esteka aktiboak zerrendatzen ditu, bakoitzak seinalatzen duen fitxategia, eta fitxategi hori ordutik iraungi den.
listgalleries *—Zure galeriak zerrendatzen ditu id, izen, fitxategi kopuru eta argitalpen egoerarekin.
gallery *g, publishGaleria baten argitalpen egoera jakinarazten du, eta aldatu egiten du publish ematen denean.
move *share (errepikagarria), gallery edo gFitxategiak galeria batera mugitzen ditu, izenez (berria bada sortu egiten da) edo id-z. Biak hutsik utziz gero, zerrenda nagusira itzultzen dira.
delete *share (errepikagarria), g, otl, withfilesFitxategiak, testuak, URL laburrak, galeriak, behin erabiltzeko estekak edo edozein nahasketa ezabatzen ditu. Share bat lehenik zure fitxategiekin parekatzen da eta gero zure testu eta estekekin, beraz deitzaileak ez ditu motaren arabera sailkatu behar. Behin erabiltzeko estekak otl-en doaz, bereiz: esteka bat kentzea ezin da nahastu seinalatzen duen fitxategia ezabatzearekin.

* Ekintza hauek API gakoa behar dute. Kontu bakar baten datuak irakurtzen edo aldatzen dituzte, beraz ez dute forma anonimorik.

Hainbat batera

share eta g-k eremu errepikatu bat, JSON array bat edo komaz bereizitako zerrenda bat onartzen dute — zure tresnek errazen dutena. Bikoiztuak baztertu egiten dira.

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
Galeriak

Galeria bat izendatzen den edonon — upload-en edo move-n — bi modu berean ematen da: g lehendik dagoen id baterako, edo gallery izen baterako, berria bada sortzen dena. Biak bidaliz gero, g-k irabazten du. Erantzunak galeriaren id-a dakar. Kontuan izan galeria bat ezabatzeak galeria bakarrik kentzen duela, eta fitxategiak zerrenda nagusian uzten dituela — web inprimakiak ez bezala, galdetu ondoren ezabatzen baititu. Pasa withfiles=true haiek ere ezabatzeko: bere taldekatzeak txukuntzen dituen script batek ez luke igoerak nahi gabe galdu behar.

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
Fitxategiak igotzea

Igoerek ezin dute JSON gorputza erabili, fitxategi bat multipart gisa bidali behar delako. Errepikatu file zatia hainbat batera bidaltzeko. Fitxategi bakoitza bereiz jakinarazten da: erantzunak onartutakoen files zerrenda eta baztertutakoen rejected zerrenda dakartza, beraz arrakasta partziala arrakasta da oraindik.

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

Honek ez du wget formarik. wget-ek ezin du multipart/form-data gorputzik eraiki — ez du curl-en -F-ren baliokiderik — eta igoerek multipart izan behar dute. Erabili curl, edo osatu zeuk gorputza eta boundary-a eta bidali --post-file-rekin.

Iraupena

Aukerakoa zerbait gordetzen duen ekintza guztietan. Segundo hutsak onartzen ditu, edo zenbaki bat m, h edo d atzetik duela — web inprimakiek onartzen dituzten forma berak. Utzi hutsik edo pasa 0 elementua mugarik gabe gordetzeko.

Erantzunak

Erantzun guztiak ok eremua duten JSON objektuak dira. Arrakasta izanez gero emaitza dakar; huts eginez gero error kode egonkor bat eta gizakiek irakur dezaketen message bat. Adarkatu kodearen arabera, erregistratu mezua.

{"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."}
Audio etiketak

Fitxategi batek dituenean, listfiles-ek file_tags gehitzen dio bere sarrerari: artista, izenburua eta albuma, fitxategia igotzean ID3, Vorbis iruzkin edo MP4 atometatik irakurriak. Gakoa ez dago, null izan beharrean, jakinarazteko ezer ez dagoenean, eta hori fitxategi gehienetan gertatzen da, beraz egiaztatu irakurri aurretik. Eremu bakanak ere falta daitezke — fitxategi batek izenburua izan dezake eta albumik ez. Fitxategiaren metadatuetatik ez da beste ezer agerian jartzen: iTunes erosketa batek erosleak izena eta Apple ID-a erregistratzen ditu, eta horiek nahita ez dira inoiz irakurtzen.

{"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"}
]}
Errore kodeak
errorHTTPAzalpena
unknown_action400Ez dago halako ekintzarik.
bad_json400Gorputza ez zen JSON baliozkoa, edo eremu batek egitura habiaratu bat zuen.
unexpected_parameter400Ekintza honek hartzen ez duen parametro bat iritsi da — normalean balio batean kodetu gabeko & bat. Mezuak parametroak izendatzen ditu.
bad_key401Gakoa ez da ezagutu. Gako okerra baztertu egiten da, isilean anonimotzat hartu beharrean.
bad_url400URLa gaizki osatuta dago, edo http(s), ftp edo gopher ez den eskema bat erabiltzen du.
bad_lifetime400Iraupena ez zen zenbaki bat, ezta m, h edo d atzetik duen zenbaki bat ere.
no_content400Ez da ezer bidali gordetzeko.
url_too_long413URLa muga baino luzeagoa da.
paste_too_long413Testua itsatsien muga baino handiagoa da. Mugak UTF-8 bytetan neurtzen dira, beraz latindarra ez den testuak karaktere kopuruak iradokitzen duena baino gehiago hartzen du.
too_many_files413Dei bakar batek onartzen duena baino fitxategi gehiago.
no_usable_files415Fitxategi guztiak baztertu dira. Begiratu rejected zerrenda zergatik jakiteko.
backend_unavailable502Itzulpen backendak ez du erantzun.
internal500Zerbaitek ustekabean huts egin du. Erregistratu da.
Mugak

Deitu whoami uneko balioak irakurtzeko, kodean finkatu beharrean — zerbitzariaren operadoreak ezartzen ditu eta alda daitezke. Tamainak UTF-8 byteak dira.

Shell bezero bat

0wx.sh-k goiko guztia biltzen du. POSIX shell hutsa da, curl besterik ez du behar, eta exekutatu aurretik irakurtzeko bezain laburra da — horixe da egin beharrekoa zure API gakoa edukiko duen script batekin. Jarri gakoa OWX_KEY-n --key pasatu beharrean, eta zure shell historiatik kanpo geratuko da.

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'
Python bezero bat

0wx.py-k shell bezeroaren gauza bera egiten du, baina erantzuna aztertzen du eta eremuek zer esan nahi duten inprimatzen du, JSON gordina eman beharrean — gehitu --json forma gordina nahi duzunean. Liburutegi estandarra bakarrik: requests-ik ez, ezer instalatu beharrik ez. Zure bezeroa idazten ari bazara, haren send() eta report() funtzioak dira irakurtzea merezi duten zatiak: bien artean erakusten dute nola eraiki eskaera, nola atera mezua huts egindako batetik, eta zer dakarten erantzunek.

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'
Perl bezero bat

0wx.pl-k Python-ekoaren gauza bera egiten du eta irteera bera inprimatzen du. Modulu nagusiak bakarrik — HTTP::Tiny eta JSON::PP Perl-ekin batera datoz 5.14tik, beraz ez dago ezer instalatzeko. Python bezeroaren ondoan irakurtzea merezi du zeurea idazten ari bazara: bi hizkuntzek modu ezberdinean huts egiten dute eskaera hautsi batekin, eta bi scriptek non esaten dute.

wget https://0wx.cat/clients/0wx.pl
chmod +x 0wx.pl
export OWX_KEY=YOUR_KEY
./0wx.pl listfiles
PowerShell bezero bat

0wx.ps1 Python bezeroaren Windows-erako parekoa da: komando berak, irteera bera, eta erantzuna aztertzen du JSON gordina eman beharrean — gehitu --json horretarako. Makinan dagoeneko dagoen Windows PowerShell-erako idatzita dago, beraz ez dago ezer instalatzeko, eta aldaketarik gabe dabil PowerShell 7-n. Baliteke Set-ExecutionPolicy -Scope Process Bypass behar izatea exekutatzen duzun leihoan; hori Windows da, deskargatutako script bat benetan exekutatu nahi duzun galdetzen — galdera zentzuzkoa, eta fitxategia aurretik irakurtzeko bezain laburra da.

$env:OWX_KEY = 'YOUR_KEY'
.\0wx.ps1 listfiles
.\0wx.ps1 paste --content 'hello & world'
.\0wx.ps1 upload --file .\holiday.jpg --gallery 'Holiday 2026'
Leiho bat zure nabigatzailean

0wx.html mahaigaineko bezeroaren fitxa multzo bera da, hiru fitxategitan — orri bat, estilo orri bat eta script bat — instalaziorik gabe, framework-ik gabe, eta gune honetatik ez den inondik ezer kargatu gabe. Hiru bat baino, gunearen Content-Security-Policy-k lerroko script eta estiloa debekatzen duelako, eta hori mantentzea merezi du. Fitxategiak gainera bota daitezke. Hemendik ireki behar da, eta ez gorde eta zure diskotik ireki: APIak ez du cross-origin goibururik bidaltzen, beraz kopia lokal bati zure nabigatzaileak eskaera guztiak baztertuko lizkioke irten aurretik. Gakoa memorian gordetzen da, gogoratzeko laukia markatu ezean.

https://0wx.cat/clients/0wx.html
Leiho bat Windowsen

0wx-gui.ps1 mahaigaineko bezeroaren fitxa multzo bera da, WinForms-ekin marraztua — hau da, ez dago ezer instalatzeko, Windowsen zati baita dagoeneko. Jarri 0wx.ps1-ren karpeta berean: leihoak fitxategi horren eskaera kudeaketa maileguan hartzen du bigarren kopia bat eraman beharrean, beraz biak behar dira. Windowsek galdetu egingo du berak idatzi ez duen script bat exekutatu aurretik, eta hori zentzuzko galdera da; bi fitxategiak erantzun aurretik irakurtzeko bezain laburrak dira.

powershell -ExecutionPolicy Bypass -File .\0wx-gui.ps1
Leiho bat Linuxen GTK-rekin

0wx-gtk.pl GTK leiho txiki bat da, igotzeko, itsasteko, laburtzeko eta zure fitxategiak arakatzeko fitxekin — zerrenda gisa edo miniaturen galeria gisa, galeriaren arabera iragazita. Hemengo bezero bakarra da zerbait instalatuta behar duena — Perl-en GTK3 loturak — eta hori jakitea merezi du goiko Windows leihoaren ondoan, hark ez baitu ezer behar. Erabiltzen duen gainerako guztia Perl-ekin batera dator. Gakoa memorian bakarrik gordetzen da: leihoa ixteak ahaztu egiten du, eta OWX_KEY ezartzeak abiaraztean betetzen du. Erakusten dizuna erakusten dizula, zerbitzariaren erantzun gordina klik batera dago “Server reply” azpian.

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
Android aplikazio bat

0wx-android.apk-k beste bezeroek egiten dutena egiten du, telefonotik: igo, itsatsi, laburtu, itzuli eta zure fitxategiak zerrenda edo galeria gisa arakatu. Beste edozein aplikaziotik fitxategi bat partekatzeak igo egiten du, eta testua partekatzeak testu gisa gordetzen du. Ez dago inongo aplikazio dendatan, beraz zure gailuak instalatzeko baimena eskatuko dizu — oro har serio hartzea merezi duen galdera, eta iturburu osoa hemen ere egotearen arrazoia: ireki Android Studio-n eta eraiki zeuk, fitxategiaz fidatu beharrean. Eraikitzeko JDK 21 behar da; barruko BUILDING.md-k azaltzen du zergatik.

https://0wx.cat/clients/0wx-android.apk        # install it
https://0wx.cat/clients/0wx-android.zip        # build it yourself
Oharrak

Nahita ez dago urruneko eskuratze ekintzarik. Zerbitzariari deitzaileak aukeratutako URL bat eskuratzera behartuko lioke, eta hori eskaera faltsutzeko eraso azalera bat da, eta script batek inprimaki batek baino askoz gogorrago ustiatu dezake. Igo fitxategia zeuk.


(p) 2018 0wx.cat -/- Powered by Linux and GNU. Live free or die! (root@0wx.cat)