Extract Encoded URL From Redirect Link

Egyre több weboldal/webszolgáltatás szórakozik azzal, hogy a rajta lévő linkeket elkódolja és belerakja egy redirecter linkbe, hogy lássa, hogy kik kattintanak rá. Amíg csak egy-egy ilyen linket akar kinyitni az ember, addig nem akkora nyűg kimásolni, megkeresni benne a valódi linket, kiszedni belőle, majd valami online URL decoderbe behajítani, de amikor sok link van, akkor már nagyon kényelmetlenné válik.

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áncot

xsel -b -o | eeurlfrl | xsel -b -i

vagy ezt

xclip -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

Hozzászólások

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."