Jump to content

Konversation/Scripts/Import mIRC server list/uk: Difference between revisions

From KDE UserBase Wiki
Yurchor (talk | contribs)
Created page with "<!--}-->BEGIN {"
FuzzyBot (talk | contribs)
Updating to match new version of source page
Line 42: Line 42:
== Скрипт ==
== Скрипт ==


<!--}}-->{{Input|<syntaxhighlight lang="perl">
{{Input|<syntaxhighlight lang="perl">
#!/usr/bin/perl
#!/usr/bin/perl


Line 104: Line 104:
use strict;
use strict;


<!--}-->BEGIN {
BEGIN {


my $konvs = `ps ax | grep konversation | grep -v grep`;
<!--T:27-->
my $konvs = `ps ax | grep konversation | grep -v grep`;
if ($konvs =~ /konversation/){
if ($konvs =~ /konversation/){
print "You need to quit konversation before running this script.\n";
print "You need to quit konversation before running this script.\n";
Line 112: Line 113:
}
}


my @mod_list = ('Config::Tiny', 'File::Copy', 'LWP::Simple');
<!--T:28-->
my @mod_list = ('Config::Tiny', 'File::Copy', 'LWP::Simple');


# If there isn't a konversationrc in the ARGV, add File::HomeDir
<!--T:29-->
# If there isn't a konversationrc in the ARGV, add File::HomeDir
push(@mod_list, 'File::HomeDir')
push(@mod_list, 'File::HomeDir')
unless ($ARGV[0] && -r $ARGV[0])
unless ($ARGV[0] && -r $ARGV[0])
|| ($ENV{KDEHOME} && -r "$ENV{KDEHOME}/share/config/konversationrc");
|| ($ENV{KDEHOME} && -r "$ENV{KDEHOME}/share/config/konversationrc");


foreach my $mod (@mod_list){
<!--T:30-->
foreach my $mod (@mod_list){
eval {
eval {
(my $fn = $mod) =~ s|::|/|g;
(my $fn = $mod) =~ s|::|/|g;
Line 176: Line 180:




<!--T:38-->
print "Counting existing server groups\n";
print "Counting existing server groups\n";
my $gcount = 0;
my $gcount = 0;
Line 189: Line 194:
foreach my $s ( keys %{ $mIRC->{servers} } ){
foreach my $s ( keys %{ $mIRC->{servers} } ){


my ($name, $server, $port, $group)
my ($name, $server, $port, $group)
= $mIRC->{servers}{$s}
= $mIRC->{servers}{$s}
=~ /(.+?)SERVER:(.+?):(\d+).*?GROUP:(.+)/;
=~ /(.+?)SERVER:(.+?):(\d+).*?GROUP:(.+)/;


next unless $group && $server && $port;
next unless $group && $server && $port;


$name =~ s/^$group: //;
$name =~ s/^$group: //;


push(@{$group{$group}}, { name=>$name, server=>$server, port=>$port });
push(@{$group{$group}}, { name=>$name, server=>$server, port=>$port });


}
}
Line 207: Line 212:
foreach my $g ( sort keys %group ){
foreach my $g ( sort keys %group ){


$konv->{"ServerGroup $gcount"} = {
$konv->{"ServerGroup $gcount"} = {
AutoConnect        => 'false',
AutoConnect        => 'false',
AutoJoinChannels    => '',
AutoJoinChannels    => '',
Line 219: Line 224:
};
};


foreach my $s ( @{ $group{$g} } ){
foreach my $s ( @{ $group{$g} } ){


$konv->{"Server $scount"} = {
$konv->{"Server $scount"} = {
Password  => '',
Password  => '',
Port      => $s->{port},
Port      => $s->{port},
Line 228: Line 233:
};
};


$konv->{"ServerGroup $gcount"}{ServerList} =
$konv->{"ServerGroup $gcount"}{ServerList} =
($konv->{"ServerGroup $gcount"}{ServerList} || '')
($konv->{"ServerGroup $gcount"}{ServerList} || '')
.(($konv->{"ServerGroup $gcount"}{ServerList}) ? ',' : '')
.(($konv->{"ServerGroup $gcount"}{ServerList}) ? ',' : '')
."Server $scount";
."Server $scount";


$scount++;
$scount++;
}
}


$gcount++;
$gcount++;
}
}
$gcount--; $scount--;
$gcount--; $scount--;
Line 251: Line 256:
print "Completed. It is now safe to start konversation.\n";
print "Completed. It is now safe to start konversation.\n";
</syntaxhighlight>}}
</syntaxhighlight>}}
[[Category:Internet]]
[[Category:Internet]]
[[Category:Advanced Users]]
[[Category:Advanced Users]]

Revision as of 08:35, 28 July 2011

Інформація

Цей скрипт виконує читання списку серверів mIRC з «http://www.mirc.com/servers.ini» і імпортує дані до вашого списку серверів Konversation.

  • It will NOT overwrite your existing servers, but will append the list to your existing list.
  • It doesn't integrate: If you have a freenode group now, you will have two freenode groups once you run it.
  • It sets all NEW servers to use your default profile.
  • It assumes you want to connect on the first port listed in the mIRC config. (Konversation doesn't appear to have the concept of multiple ports).

Користування

Скопіюйте вміст скрипту до нового текстового документа і скористайтеся дією Зберегти, щоб зберегти скрипт з назвою «konversation_servers» (або будь-якою іншою назвою, не забудьте однак виправити наведені нижче команди!)

Переконайтеся, що роботу Konversation завершено (не просто закрито головне вікно) і віддайте команду:

perl konversation_servers

або

perl konversation_servers /шлях/до/konversationrc

Для запуску скрипту слід встановити декілька модулів perl:

Можете не встановлювати модуль File::HomeDir, якщо ви вкажете шлях до файла konversationrc у командному рядку або якщо встановлено змінну середовища KDEHOME, а файл konversationrc зберігається у типовій теці.

Гарантійні зобов’язання

ВАМ НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙНИХ ЗОБОВ’ЯЗАНЬ ЩОДО ЦЬОГО СКРИПТУ.

Підтримка

Будь-які питання ви можете задати користувачеві Woosta у Freenode або вашому знайомому знавцеві perl.

Умови ліцензування

©Rick Measham, 2007. Ця програма є вільним програмним забезпеченням, ви можете поширювати і/або вносити до неї зміни за дотримання тих самих ліцензійних умов, за якими розповсюджується ваш дистрибутив Perl.

Скрипт

'"`UNIQ--syntaxhighlight-00000002-QINU`"'