precious

...
lalka

dig

wtf?

...
lalka

Pidgin (dla Windows) - profile proxy

Od jakiegoś czasu używam Pidgina w wersji przenośnej. Strasznie mi się podobał do momentu gdy zachciało mi się go używać zarówno w domu jak i w pracy - wszystko przez proxy.

Zarówno w domu, jak i w pracy mój net śmiga przez proxy, z tym, że w domu tylko http, a w pracy wszystko. Żeby było trudniej jabber potrzebuje zupełnie innego proxy niż gg, nie mówiąc już np. o pluginie do facebook'a. Każda zmiana miejsca używania wiązała się z ręczną zmianą ustawień
Jak na razie Pidgin profilów proxy nie wspiera, ani też o żadnym, służącym do tego celu pluginie nie słyszałem. Postanowiłem więc zmajstrować coś samodzielnie.

Coś mi nawet wyszło, więc się dzięlę - może komuś też się przyda :-).
Ustawienia proxy Pidgin trzyma w dwóch plikach:
  • globalne ustawienia w:
    PidginPortable\Data\settings\.purple\prefs.xml
  • ustawienia dla poszczególnych kont w:
    PidginPortable\Data\settings\.purple\accounts.xml
Gdyby trzymał w nich tylko ustawienia proxy nie byłoby problemu - możnaby przygotować 2 zestawy plików i po prostu zamieniać je przed uruchomieniem (choćby prostym skryptem .bat). Jest jednak inaczej. Pliki zawierają znacznie więcej. W przypadku zmiany jakiegokolwiek ustawienia programu, drugi zestaw ustawień stawałby się automatycznie nieaktualny.
Pozostało grzebanie w plikach i podmiana tylko konkretnych ustawień proxy.

Pewnie dałoby się to zrobić w kilku liniach Perla/Pythona/itp. ale nie wchodziło to w moim przypadku w grę, ponieważ nie miałem pewności, że na wszystkich komputerach, na których będę uruchamiał Pidgina będzie coś więcej niż sam system.

Wybrałem więc windowsowy JScript. Może i jest coś lepszego, ale akurat tego chciałem spróbować :-).


Działanie skryptu jest banalne. Znajduje w plikach konfiguracyjnych odpowiednie node'y, podmienia na nowe, zapisuje i uruchamia Pidgina.

Plik:
runner.js


W nagłówku znajduje się mniej więcej taka sekcja:
var settings = {
// -------------------------------------------------------------------------------------------+
    'global'				:	{'type':'none'	, 'host':''	, 'port': ''},
// -------------------------------------------------------------------------------------------+
    '66666'				:	{'type':'none'	, 'host':''	, 'port': ''},
    'login@jabber.aster.pl/zasób'	:	{'type':'none'	, 'host':''	, 'port': ''},
    'login@irc.freenode.net'		:	{'type':'none'	, 'host':''	, 'port': ''}
// -------------------------------------------------------------------------------------------+
}
Tę sekcję należy oczywiście zmienić według własnych potrzeb. Warto zajrzeć do oryginalnego pliku accounts.xml w razie wątpliwości.
Poszczególne konta mogą mieć różne ustawiania:
'66666'	:	{'type':'http'	, 'host':'moje.super.proxy.pl'	, 'port': '8080'},
lub wskazywać na głowne, które musi być wtedy oczywiście ustawione:
'global'	:	{'type':'http'	, 'host':'moje.super.proxy.pl'	, 'port': '8080'},
// -------------------------------------------------------------------------------------------+
'66666'		:	{'type':'global'	,	'host':''	, 'port': ''},


Przygotwujemy tyle kopii tego pliku ile proxy-profili nam potrzeba (do domu, do pracy, do sąsiada, do dziewczyny, ... ;-) ) i wrzucamy do katalogu głównego naszego przenośnego Pidgina. Wystarczy odpalić wybrany pliczek zamiast samego Pidgina i cieszyć się poprawnie skonfigurowanym Pidginem :-).

Tak na wszelki wypadek, lepiej zrobić kopię zapasowa plików ustawień przed użyciem tego skryptu - to że u mnie działa, nie znaczy, że będzie działać wszędzie :-).
Za wszelkie powstałe szkody nie odpowiadam.