[PerlWikiBot] SF.net SVN: perlwikibot:[59] trunk/no-interwiki/prepare_noiw_list.pl
Status: Pre-Alpha
Brought to you by:
rotemliss
|
From: <am...@us...> - 2008-08-03 14:38:13
|
Revision: 59
http://perlwikibot.svn.sourceforge.net/perlwikibot/?rev=59&view=rev
Author: amire80
Date: 2008-08-03 14:38:23 +0000 (Sun, 03 Aug 2008)
Log Message:
-----------
Added print_multi_links_by_local().
Modified Paths:
--------------
trunk/no-interwiki/prepare_noiw_list.pl
Modified: trunk/no-interwiki/prepare_noiw_list.pl
===================================================================
--- trunk/no-interwiki/prepare_noiw_list.pl 2008-08-03 13:30:21 UTC (rev 58)
+++ trunk/no-interwiki/prepare_noiw_list.pl 2008-08-03 14:38:23 UTC (rev 59)
@@ -337,9 +337,17 @@
create_no_iw_pages();
INFO(q{});
+
+# my @found_lang_codes = sort keys %found_links;
+# INFO("found lang_codes: @found_lang_codes");
+
say 'looking for multi links';
my $begin_multi_links_time = time;
-print_multi_links_by_foreign();
+
+# print_multi_links_by_foreign();
+
+print_multi_links_by_local();
+
my $total_multi_links_time = time - $begin_multi_links_time;
say "total multi links time: $total_multi_links_time";
@@ -1151,14 +1159,20 @@
sub print_multi_links_by_foreign {
LANG_CODE:
foreach my $lang_code (sort keys %found_links) {
- my $lang_fn = "$lang_code.multi_links.txt";
my @foreign_articles = sort keys %{ $found_links{$lang_code} };
FOREIGN_ARTICLE:
foreach my $foreign_article (@foreign_articles) {
my @local_articles =
keys %{ $found_links{$lang_code}->{$foreign_article} };
if (scalar @local_articles > 1) {
- handle_multi_link($lang_code, $foreign_article);
+ my $links = join q{ | }, sort map { make_link($_) }
+ keys %{ $found_links{$lang_code}->{$foreign_article} };
+
+ my $foreign_title =
+ make_link($lang_code
+ . $MW_SYNTAX{namespace_sep}
+ . $foreign_article);
+ INFO("* '''$foreign_title''' - $links\n");
}
}
}
@@ -1166,17 +1180,68 @@
return;
}
-sub handle_multi_link {
- my ($lang_code, $foreign_article) = @_;
- my $links = join q{ | }, sort map { make_link($_) }
- keys %{ $found_links{$lang_code}->{$foreign_article} };
+sub print_multi_links_by_local {
+ my %local_multi_links;
+ LANG_CODE:
+ foreach my $lang_code (sort keys %found_links) {
- my $foreign_title =
- make_link($lang_code . $MW_SYNTAX{namespace_sep} . $foreign_article);
- INFO("* '''$foreign_title''' - $links\n");
+ # my @foreign_articles = map { make_link($lang_code . $MW_SYNTAX{namespace_sep} . $_) } sort keys %{ $found_links{$lang_code} };
+ my @foreign_articles = sort keys %{ $found_links{$lang_code} };
+ FOREIGN_ARTICLE:
+ foreach my $foreign_article (@foreign_articles) {
+ my @local_articles =
+ keys %{ $found_links{$lang_code}->{$foreign_article} };
+
+ if (scalar @local_articles > 1) {
+ add_local_multi(
+ \%local_multi_links,
+ make_link(
+ $lang_code
+ . $MW_SYNTAX{namespace_sep}
+ . $foreign_article
+ ),
+ @local_articles
+ );
+ }
+ }
+ }
+
+ foreach my $local_multi_article (sort keys %local_multi_links) {
+ INFO('* ' . mw_bold(make_link($local_multi_article)));
+ foreach my $other_local_article (
+ sort keys %{ $local_multi_links{$local_multi_article} })
+ {
+ INFO('** ' . make_link($other_local_article));
+ my $foreign_articles = join_links(
+ $local_multi_links{$local_multi_article}
+ ->{$other_local_article},
+ 0
+ );
+ INFO("*** $foreign_articles");
+ }
+ }
+
return;
}
+sub add_local_multi {
+ my (
+ $local_multi_links_ref, $foreign_link,
+ $first_local_article, @other_local_articles
+ ) = @_;
+
+ $local_multi_links_ref->{$first_local_article} //= {};
+
+ foreach my $other_local_article (@other_local_articles) {
+ $local_multi_links_ref->{$first_local_article}
+ ->{$other_local_article} //= [];
+ push @{ $local_multi_links_ref->{$first_local_article}
+ ->{$other_local_article} }, $foreign_link;
+ }
+
+ return;
+}
+
sub join_links {
my ($links_ref, $line_end) = @_;
$line_end //= 1; # /
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|