Home > geek stuff > Pravi autoaccept v Pidginu

Pravi autoaccept v Pidginu

October 19th, 2008 Leave a comment Go to comments

Na živce mi gre, ko mi, takrat ko me ni doma, nekdo hoče nekaj poslati prek msnja/jabberja/... in mi pidgin (torej im client) tega sam ne sprejme. In potem ko pridem zvečer domov, vidim pet poskusov pošiljanja nečesa, in osebo, ki je offline, medtem ko bi jaz takrat rabil tisto kar mi je tisti poskušal poslati.

Za pidgin obstaja že vgrajen autoaccept plugin, ki pa ima (po mojem) eno veliko pomakljivost - ne omogoča avtomatskega sprejemanja od čisto vseh - torej moraš za vsakega posebaj namestiti da želiš da sam sprejme datoteko. In zato bom sem napisal dirty-one_line_of_code hack, da pidgin sam vse sprejme brez vprašanj1.

Prvo razpakiramo pidginov source23. Pomaknemo se v "./pidgin-2.5.1/libpurple/plugins"4 in odpremo datoteko "autoaccept.c". Pomaknemo se nižje, tam nekje do 114. vrstice kjer se nahaja:

...
        switch (purple_blist_node_get_int(node, "autoaccept"))
        {
                case FT_ASK:
                        break;
                case FT_ACCEPT:
                        if (ensure_path_exists(pref))
                        {
...

Torej, če je nastavljeno na "FT_ASK", torej po defaultu za vse, da vpraša, ne naredi nič, ampak res vpraša, mi pa rabimo da avtomatsko accepta. Tu je sicer več načinov kako to spremeniti, vendar je najlažji da samo izbrišemo "break;" in izvjajanje kode avtomatsko preskoči na avtomatski sprejem. Če pa je za koga naštimano da avtomatsko zavrne, pa še vedno dela tudi to. Torej nova koda izgleda takole:

...
        switch (purple_blist_node_get_int(node, "autoaccept"))
        {
                case FT_ASK:
                case FT_ACCEPT:
                        if (ensure_path_exists(pref))
                        {
...

Torej samo ena vrstica razlike. Potem skompajlamo5 in dela (vsaj meni). :D

  1. če si windows user, tega nočeš... ker to vključuje tudi sprejemanje vseh virusov ipd. sranja
  2. ja.. to pomeni da moraš imeti izkušnje z razpakiravanjem, editanjem, in kompajlanjem
  3. jaz uporabljam v tem primeru verzijo 2.5.1, toda mislim da se že kar nekaj verzij ni nič spremenilo
  4. namesto 2.5.1 je lahko druga številka verzije, odvisno s katero delaš
  5. "cd ../..; ./configure; make; make install", ali pa narediš patch, in ga uporabiš v kombinaciji z package managerjem (recimo pri portage-u dodaš nekaj vrstic v ebuild, in patch na pravo mesto, in se vse samo popatcha)
Categories: geek stuff Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.