08/04/2009 - 23:44:10
ogólnie,
techblog,
technicznie
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
.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, ...
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.


