Először egy shellscriptet akartam rá írni, de miután kiderült, hogy ezt csak
awk hegyekkel lehet megoldani (ráadásul a példák zöme gawk specifikus volt), úgy döntöttem, hogy inkább megírom C-ben.
Működése egyszerű: fogja a program a kapott URL-(eke)t, megkeresi a '%3A%2F%2F' stringet (ez ugye az elkódolt '://'), visszafelé megkeresi az első non-alfanumerikus karaktert, hogy a protokoll is a linkben legyen, majd megkeresi a következő ampersand (&) karaktert, vagy a string végét és URL-dekódolja a kettő közti részt. A végeredményt kiírja a stdout-ra.
Update: Az 1.1.0 a nem elkódolt URL-eket is ki tudja bányászni.
A használata is egyszerű: vagy argumentumként adja át az ember a parancsnak az URL-eket (argumentumként egyet), vagy pedig - LF-fel elszeparálva - beönti őket a stdin-re, aztán viszi az eredményt a stdout-ról.
Be lehet lőni hotkeyre a következő parancsláncotxsel -b -o | eeurlfrl | xsel -b -ivagy eztxclip -selection clipboard -o | eeurlfrl | xclip -selection clipboard -iés utána csak link másolása, hotkey, majd a kapott link beillesztésre új tabra. (Vagy másik hotkey-jel elküldése a browsernek.)
A - Public Domain alatt elérhető - forrás letölthető innen (függőségei a - libc-n kívül - nincsenek):
http://oscomp.hu/?details/Extract_Encoded_URL_From_Redirect_Link_v1.0.0_(CP)_1570- TCH blogja
- A hozzászóláshoz be kell jelentkezni
- 473 megtekintés
Hozzászólások
Sok idod van :D
- A hozzászóláshoz be kell jelentkezni
Szombat van. És egyébként kb. egy óra volt megcsinálni.
- A hozzászóláshoz be kell jelentkezni
kozmetikai megjegyzés: fprintf-hez illene egy string format
fprintf(stderr, "%s", alloc_fail);"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Ok, thx, ha majd lesz valami bugfix, vagy új feature, akkor ezt is berakom.
- A hozzászóláshoz be kell jelentkezni
Erre most került sor, mert belefutottam egy olyan URL-be, ahol nem volt enkódolva a cucc, innentől azt is le tudja kezelni. Az 1.1.0 a helyén, frissítettem a linket.
- A hozzászóláshoz be kell jelentkezni