sunflower 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,49 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ # EDIT WIKI URL BELOW
5
+ s=Sunflower.new
6
+
7
+ print "Logging in to #{s.wikiURL}... "
8
+ # EDIT USERNAME AND PASSWORD BELOW
9
+ s.login
10
+ print "done!\n"
11
+
12
+ print "Reading articles list... "
13
+ # EDIT FILENAME BELOW
14
+ str=HTTP.get(URI.parse('http://toolserver.org/~sk/cgi-bin/checkwiki/checkwiki.cgi?project=plwiki&view=bots&id=32&offset=0&limit=2500'))
15
+ list=str[(str.index('<pre>')+5)...(str.index('</pre>'))].strip.split(/\r?\n/)
16
+ print "done!\n\n"
17
+
18
+ # EDIT SUMMARY BELOW
19
+ $summary='poprawa podwójnych znaków pipe w linkach, [[WP:SK]]'
20
+
21
+ failcounter=0
22
+ list.each do |title|
23
+ begin
24
+ print "Reading page #{title}... "
25
+ page=Page.get(title)
26
+ print "done.\n"
27
+ print "Modifying... "
28
+
29
+ page.replace(/\[\[([^\|\]]+)\|\|([^\]]+)\]\]/, '[[\1|\2]]')
30
+ page.codeCleanup unless page.origText==page.text
31
+
32
+ print "done.\n"
33
+ print "Saving... "
34
+ page.save
35
+ print "done!\n\n"
36
+ rescue
37
+ failcounter+=1
38
+ if failcounter<5
39
+ print "#{failcounter}th error, retrying!\n"
40
+ redo
41
+ else
42
+ print "#{failcounter}th error!\n\n"
43
+ next
44
+ end
45
+ end
46
+ end
47
+
48
+ print 'Finished! Press any key to close.'
49
+ gets
@@ -0,0 +1,43 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ # EDIT WIKI URL BELOW
5
+ s=Sunflower.new('pl.wikipedia.org')
6
+
7
+ print "Logging in to #{s.wikiURL}... "
8
+ # EDIT USERNAME AND PASSWORD BELOW
9
+ s.login
10
+ print "done!\n"
11
+
12
+ print "Reading articles list... "
13
+ # EDIT FILENAME BELOW
14
+ list=s.make_list('category', 'Kategoria:Nierozpoznany kod języka w szablonie lang')
15
+ print "done!\n\n"
16
+
17
+ # EDIT SUMMARY BELOW
18
+ $summary='dr.tech.'
19
+
20
+ list.each do |title|
21
+ print "Reading page #{title}... "
22
+ page=Page.get(title)
23
+ print "done.\n"
24
+ print "Modifying... "
25
+
26
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(angielskim?|eng?lish|ang\.|ang|eng?\.|eng|\[\[(?:język |)angielski[^\]]*\]\])/i, '\1en')
27
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(polskim?|pol\.|pol|pl\.|\[\[(?:język |)polski[^\]]*\]\])/i, '\1pl')
28
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(rosyjskim?|r[uo]s\.|r[uo]s|\[\[(?:język |)rosyjski[^\]]*\]\])/i, '\1ru')
29
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(cz)/i, '\1cs')
30
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(dk)/i, '\1da')
31
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(nb)/i, '\1no')
32
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(jp)/i, '\1ja')
33
+ page.replace(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)(greka|greckim?|gr\.?|eleka|eleckim?)/i, '\1el')
34
+ #page.text=page.text.gsub(/(\{\{cytuj [^\}]+?\|\s*język\s*=\s*|\{\{(?:multi|)lang\|)([^\}\|]+)/i){$1+$2.downcase.split(/[^a-z-]+/).join('{{!}}')}
35
+
36
+ print "done.\n"
37
+ print "Saving... "
38
+ page.save unless page.orig_text.downcase==page.text.downcase
39
+ print "done!\n\n"
40
+ end
41
+
42
+ print 'Finished! Press any key to close.'
43
+ gets
@@ -0,0 +1,102 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ # EDIT WIKI URL BELOW
5
+ s=Sunflower.new
6
+
7
+ print "Logging in to #{s.wikiURL}... "
8
+ # EDIT USERNAME AND PASSWORD BELOW
9
+ s.login
10
+ print "done!\n"
11
+
12
+ print "Reading articles list... "
13
+ # EDIT FILENAME BELOW
14
+ list=s.make_list('file', 'multirefs.txt')
15
+ print "done!\n\n"
16
+
17
+ # EDIT SUMMARY BELOW
18
+ $summary='poprawa powtarzających się przypisów, [[WP:SK]]'
19
+
20
+ list.each do |title|
21
+ $refcount=0
22
+
23
+ print "Reading page #{title}... "
24
+ #page=Page.get(title)
25
+ page=Page.new
26
+ page.text=<<EOF
27
+ '''Abraham von Dohna''' (ur. [[11 grudnia]] [[1561]]r., zm. [[1 maja]] [[1613]] r. we [[Wrocław]]iu) – władca [[Syców|sycowskiego]] [[wolne państwo stanowe|wolnego państwa stanowego]] od [[1592]]<ref>A. i A. Galasowie, ''Dzieje Śląska w datach'', wyd. Rzeka, Wrocław 2001, s. 353.</ref>
28
+
29
+ ==Rodzina i pochodzenie==
30
+ Pochodził z [[Prusy|pruskiego]] [[Ród Dohnów|rodu von Dohna]], osiadłego na [[Śląsk]]u w [[XIII]] w. Był synem Abrahama von Dohna seniora, który był [[starosta|starostą]] [[Księstwo głogowskie|głogowskim]]. W [[1587]] r. poślubił Eleonorę von Saurma-Jeltsch.<ref>T. Kulak, W. Mrozowicz, ''Syców i okolice od czasów najdawniejszych po współczesność'', s. 47.</ref>
31
+
32
+ ==Kariera polityczna==
33
+ Był aktywny politycznie. Wcześnie rozpoczął karierę na [[dwór|dworze cesarskim]] uczestnicząc w licznych misjach dyplomatycznych na terenie [[Polska|Polski]] i [[Rosja|Rosji]], gdzie zabiegał o pogodzenie obu zwaśnionych państw w obliczu zagrożenia ze strony [[Imperium Osmańskie]]go oraz do [[Hiszpania|Hiszpanii]]. W [[1596]] r. został mianowany [[wójt|wójtem krajowym]] [[Łużyce|Łużyc Górnych]].<ref>''Ibidem'', s. 47.</ref>
34
+
35
+ ==Wolny pan stanowy Sycowa==
36
+ Ożenek z bogatą Eleonorą von Saurma-Jeltsch zapewnił mu znaczne fundusze na zakup sycowskiego wolnego państwa stanowego od zadłużonego [[Georg Wilhelm von Braun|Jerzego Wilhelma von Braun]] w [[1592]] r.<ref>''Ibidem'', s. 47.</ref>
37
+
38
+ Udało mu się zakończyć wieloletni spór o [[Międzybórz]] i okolice, który zakończył się jego utrata na rzecz [[Księstwo oleśnickie|księstwa oleśnickiego]]. W latach [[1604]]-[[1605|05]] za kwotę 50 tys. talarów nabył majątek [[Goszcz]]. Uregulował kwestie następstwa tronu w sycowskim wolnym państwie stanowym po swojej śmierci poprzez ustanowienie zasady [[primogenitura|primogenitury]], która została zatwierdzona przez [[cesarz]]a [[Rudolf II Habsburg|Rudolfa II]] w [[1600]] r.<ref>''Ibidem'', s. 48.</ref>
39
+
40
+ W [[1594]] r. rozpoczął budowę nowego [[Zamek w Sycowie|zamku]] w [[Syców|Sycowie]] razem z parkiem, która zastąpiła dotychczasowy zamek, który częściowo znajdował się w ruinie po oblężeniu za panowania [[Joachim I von Maltzan|Joachima von Maltzana]]. Ukończoną ją w [[1608]] r.
41
+
42
+ ===Sprawy religijne===
43
+ W [[1592]] r. wydał przywilej gwarantujący na terenie swojego państwa wolność religijna i uprawnienie dla [[Protestantyzm|protestantów]]. Chociaż wychował się w duchu protestantyzmu wyraźnie sprzyjał [[Katolicyzm|katolikom]], odbierając w [[1601]] r. sycowskim protestantom [[Kościół św. Piotra i Pawła w Sycowie|kościół św. Piotra i Pawła]], pozostawiając w ich rękach mniejszy kościół p.w. św. Michała.<ref>''Ibidem'', s. 47.</ref>
44
+
45
+ ===Sprawy gospodarcze i poszerzenie granic władztwa===
46
+ Podczas swoich rządów wykazał się dużą dbałością o zarządzanie swoimi dobrami. W [[1592]] r. dokupił [[Dziadowa Kłoda|Dziadową Kłodę]], a cztery lata później przyłączył dwie części [[Trębaczów|Trębaczowa]], sprzedając przy okazji [[Komorów]].<ref>''Ibidem'', s. 47.</ref> Od miasta [[Syców|Sycowa]] odkupił prawo wyszynku piwa i wina oraz kilka stawów rybnych. Na terenie swoich włości zakładał nowe [[folwark]]i oraz bażanciarnię. Zaradził uprawę [[winorośl]]i, [[chmiel]]u, owoców i warzyw. Rozwijała się gospodarka leśna i rybno-stawowa.<ref>''Ibidem'', s. 48.</ref>
47
+
48
+ ==Ostatnie lata życia i śmierć==
49
+ Pod koniec życia z powodu rozwijającego się [[artretyzm]]u zrezygnował z urzędu wójta Górnych Łużyc ([[1612]] r.) Niedługo potem,[[1 maja]] [[1613]] r. zmarł we [[Wrocław]]iu, zaś jego ciało zostało przewiezione do Sycowa, gdzie został pochowany [[28 czerwca]] w zbudowanej na jego prośbę nowej krypcie rodzinnej, która stanęła pod północna kaplicą boczną kościoła parafialnego św. Piotra i św. Pawła.<ref>''Ibidem'', s. 48.</ref>
50
+
51
+ == Bibliografia ==
52
+ * [[Teresa Kulak|T. Kulak]], [[Wojciech Mrozowicz|W. Mrozowicz]], ''Syców i okolice od czasów najdawniejszych po współczesność'', wyd. Oficyna wydawnicza ''Atut'', Wrocław-Syców 2000.
53
+ * J. Franzkowski, ''Geschichte der freien Standesherrschaft, der Stadt und des landrätlichen Kreises Gross Wartenberg'', Gross Wartenberg 1912.
54
+
55
+ == Przypisy==
56
+ <references/>
57
+
58
+ {{Poprzednik Następca|urząd=[[Plik:POL Syców COA.svg|40px]] [[Syców|Wolny pan stanowy Sycowa]] [[Plik:POL Syców COA.svg|40px]]|lata=[[1592]]- [[1613]]|pop=[[Georg Wilhelm von Braun]]|nast=[[Karl Hannibal von Dohna]]}}
59
+
60
+
61
+ [[Kategoria:Urodzeni w 1561]]
62
+ [[Kategoria:Zmarli w 1613]]
63
+
64
+ [[de:Abraham von Dohna]]
65
+ EOF
66
+ print "done.\n"
67
+ print "Modifying... "
68
+
69
+ page.replace("\r\n", "\n")
70
+
71
+ 30.times do
72
+ page.text=page.text.sub( # that's ugly, but simpliest
73
+ /<ref(?: name="([^"]+|)"|)>(.+?)<\/ref>([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?(?:([\s\S]+?)<ref(?: name="[^"]+"|)>\2<\/ref>)?/
74
+ ) do
75
+ # $1 = name pierwszego refa; $2 = tekst refów; $3..n = teksty między refami
76
+ name=($1.to_s!='' ? $1.to_s : 'auto-'+($refcount=$refcount+1).to_s)
77
+ res='<ref name="'+name+'">'+$2+'</ref>'+$3+'<ref name="'+name+'" />'
78
+
79
+ i=4
80
+ while(! eval("$#{i}").nil?)
81
+ res+=eval("$#{i}")+'<ref name="'+name+'" />'
82
+ i=i+1
83
+ end
84
+
85
+ res
86
+ end
87
+ end
88
+
89
+ page.codeCleanup
90
+
91
+
92
+
93
+ print "done.\n"
94
+ print "Saving... "
95
+ #page.save
96
+ page.dumpto 'reftest.txt'
97
+ gets
98
+ print "done!\n\n"
99
+ end
100
+
101
+ print 'Finished! Press any key to close.'
102
+ gets
@@ -0,0 +1,43 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ # EDIT WIKI URL BELOW
5
+ s=Sunflower.new
6
+
7
+ print "Logging in to #{s.wikiURL}... "
8
+ # EDIT USERNAME AND PASSWORD BELOW
9
+ s.login
10
+ print "done!\n"
11
+
12
+ print "Reading articles list... "
13
+ # EDIT FILENAME BELOW
14
+ str=HTTP.get(URI.parse('http://toolserver.org/~sk/cgi-bin/checkwiki/checkwiki.cgi?project=plwiki&view=bots&id=11&offset=0&limit=2500'))
15
+ list=str[(str.index('<pre>')+5)...(str.index('</pre>'))].strip.split(/\r?\n/)
16
+ print "done!\n\n"
17
+
18
+ # EDIT SUMMARY BELOW
19
+ $summary='poprawa encji na znaki Unicode, [[WP:SK]]'
20
+
21
+ list.each do |title|
22
+ print "Reading page #{title}... "
23
+ page=Page.get(title)
24
+ print "done.\n"
25
+ print "Modifying... "
26
+
27
+ to='− → ← ↓ ↑ ∞ · • å à ñ ä ö ü ß – — ⇒ £ À ¢ ↔ " æ Å … ’ ‘'.split ' '
28
+ from='&minus; &rarr; &larr; &darr; &uarr; &infin; &middot; &bull; &aring; &agrave; &ntilde; &auml; &ouml; &uuml; &szlig; &ndash; &mdash; &rArr; &pound; &Agrave; &cent; &harr; &quot; &aelig; &Aring; &hellip; &rsquo; &lsquo;'.split ' '
29
+
30
+ from.each_index do |i|
31
+ page.replace(from[i], to[i])
32
+ end
33
+
34
+ page.codeCleanup unless page.origText==page.text
35
+
36
+ print "done.\n"
37
+ print "Saving... "
38
+ page.save
39
+ print "done!\n\n"
40
+ end
41
+
42
+ print 'Finished! Press any key to close.'
43
+ gets
@@ -0,0 +1,51 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ # EDIT WIKI URL BELOW
5
+ s=Sunflower.new
6
+
7
+ print "Logging in to #{s.wikiURL}... "
8
+ # EDIT USERNAME AND PASSWORD BELOW
9
+ s.login
10
+ print "done!\n"
11
+
12
+ print "Reading articles list... "
13
+ # EDIT FILENAME BELOW
14
+ str=HTTP.get(URI.parse('http://toolserver.org/~sk/cgi-bin/checkwiki/checkwiki.cgi?project=plwiki&view=bots&id=16&offset=0&limit=2500'))
15
+ list=str[(str.index('<pre>')+5)...(str.index('</pre>'))].strip.split(/\r?\n/)
16
+ print "done!\n\n"
17
+
18
+ # EDIT SUMMARY BELOW
19
+ $summary='poprawa znaków kontrolnych Unicode, [[WP:SK]]'
20
+
21
+ failcounter=0
22
+ list.each do |title|
23
+ begin
24
+ print "Reading page #{title}... "
25
+ page=Page.get(title)
26
+ print "done.\n"
27
+ print "Modifying... "
28
+
29
+ page.replace(/|‎|​/, "")
30
+
31
+
32
+ page.codeCleanup
33
+
34
+ print "done.\n"
35
+ print "Saving... "
36
+ page.save
37
+ print "done!\n\n"
38
+ rescue
39
+ failcounter+=1
40
+ if failcounter<5
41
+ print "#{failcounter}th error, retrying!\n"
42
+ redo
43
+ else
44
+ print "#{failcounter}th error!\n\n"
45
+ next
46
+ end
47
+ end
48
+ end
49
+
50
+ print 'Finished! Press any key to close.'
51
+ gets
@@ -0,0 +1,133 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'cgi'
4
+ include Net
5
+
6
+ require 'sunflower-core.rb'
7
+ s=Sunflower.new
8
+ s.login
9
+
10
+ przejrzane=Page.new 'Wikipedysta:PMG/przejrzane'
11
+ t=przejrzane.read
12
+
13
+
14
+ begin
15
+ f=File.open('puredata.txt','r')
16
+ pd1=f.read.split(/\r?\n/)
17
+ f.close
18
+ rescue
19
+ pd1=[]
20
+ end
21
+
22
+ pdv=[]
23
+ pdn=[]
24
+ pd1.each do |i|
25
+ n=i.split('|')
26
+ n[1]='' if n[1]==nil
27
+
28
+ pdn<<n[0]
29
+ pdv<<n[1]
30
+ end
31
+
32
+ f=File.open('puredata.txt','w')
33
+
34
+ $counter=0
35
+ nt=t.sub(/(\{\| class="wikitable sortable"(?:\s*!.+)+)\s*\|-([\s\S]+?)(\|\})/){
36
+ nl="\n" #shorten
37
+ before=$1
38
+ after=$3
39
+
40
+ data=$2.split("|-\n|")
41
+ data=data.map{|i|
42
+ i.strip.split(/\s*\|\s*/)
43
+ }
44
+
45
+ data2=[]
46
+ for d in data
47
+ d.shift if d[0].strip==''
48
+
49
+ # load puredata, if possible, and skip the rest
50
+ # if pd[d[-1]]!=nil #&& pd[d[-1]]!=''
51
+ i=pdn.index(d[-1])
52
+ if i!=nil && pdv[pdn.index(d[-1])]!=nil
53
+ puts d[-1]+': (datafile)'
54
+ puts ' '+pdv[i]
55
+
56
+ last=d[-1]
57
+ d[-1]=pdv[i]
58
+ d<<last
59
+
60
+ data2<<d
61
+ $counter=0
62
+
63
+ #rewrite puredata
64
+ f.write(d[-1]+'|'+pdv[i]+nl)
65
+ f.flush
66
+
67
+ next #skip the rest of loop
68
+ end
69
+
70
+ url=d[0].sub(/^\*+ \[(http:[^ ]+) [^\]]+\]$/,'\1')
71
+
72
+ #puts url
73
+ puts d[-1]+':' if $counter==0
74
+
75
+ begin
76
+ res=HTTP.get(URI.parse(url.sub(/&category=([^&]+)/){'&category='+CGI.escape($1)}))
77
+
78
+ f2=File.open('last.txt','w')
79
+ f2.write(res)
80
+ f2.close
81
+
82
+ res=~/Znaleziono (\d+) nieprzejrza/
83
+ num=$1
84
+ rescue Timeout::Error
85
+ num=nil
86
+ $counter+=3 #repeat only once
87
+ end
88
+
89
+ if num==nil
90
+ $counter+=1
91
+ if $counter<5
92
+ puts 'Retrying...'
93
+ redo
94
+ else
95
+ num=''
96
+ end
97
+ end
98
+
99
+ puts ' '+num
100
+
101
+ last=d[-1]
102
+ d[-1]=num
103
+ d<<last
104
+
105
+ data2<<d
106
+ $counter=0
107
+
108
+ #write puredata to file
109
+ f.write(d[-1]+'|'+num+nl)
110
+ f.flush
111
+ end
112
+
113
+ data3=nl
114
+ for d in data2
115
+ data3+='|-'+nl+'|'+d.join(nl+'|')+nl
116
+ end
117
+
118
+ months=%w(zero stycznia lutego marca kwietnia maja czerwca lipca sierpnia września października listopada grudnia)
119
+ d=Date.parse(Time.now.to_s)
120
+
121
+ before.sub(/(!Link do kategorii)/,'!'+d.day.to_s+' '+months[d.month]+' '+d.year.to_s+nl+'\1')+data3+after #print it out
122
+ }
123
+
124
+
125
+ f.close #puredata.txt
126
+
127
+ f=File.open('data2.txt','w')
128
+ f.write(nt)
129
+ f.close
130
+
131
+ $summary='aktualizacja'
132
+ przejrzane.write nt
133
+ przejrzane.save
@@ -0,0 +1,51 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ # EDIT WIKI URL BELOW
5
+ s=Sunflower.new('pl.wikipedia.org')
6
+
7
+ print "Logging in to #{s.wikiURL}... "
8
+ # EDIT USERNAME AND PASSWORD BELOW
9
+ s.login
10
+ print "done!\n"
11
+
12
+ print "Reading articles list... "
13
+ # EDIT FILENAME BELOW
14
+ # list=s.make_list('file', 'lekkoatl.txt')
15
+ # nice generating:
16
+ all=s.make_list('categoryr', 'Kategoria:Lekkoatletyka')
17
+ done=s.make_list('category', 'Kategoria:Wikiprojekt:Lekkoatletyka/hasła')
18
+ error=done.collect{|a| a.index ':'}
19
+ done=done.map{|a| (a.index ':' ? '' : 'Dyskusja:'+a)}
20
+ done.delete_if{|a| a==''}
21
+ list=all-done
22
+ print "done!\n\n"
23
+
24
+ File.open('err.txt','w'){|f| f.write error.join("\n")}
25
+ File.open('ok.txt','w'){|f| f.write list.join("\n")}
26
+
27
+ # EDIT SUMMARY BELOW
28
+ $summary='dodanie {{[[Portal:Lekkoatletyka/Info]]}}'
29
+
30
+ list.each do |title|
31
+ print "Reading page #{title}... "
32
+ page=Page.get('Dyskusja:'+title)
33
+ print "done.\n"
34
+ print "Modifying... "
35
+
36
+ if page.text.index('Portal:Lekkoatletyka/Info')!=nil
37
+ page.dump
38
+ next
39
+ end
40
+
41
+ nl=(page.text.lstrip.index('{{')==0 ? "\n" : "\n\n")
42
+ page.text='{{Portal:Lekkoatletyka/Info}}'+nl+page.text.lstrip
43
+
44
+ print "done.\n"
45
+ print "Saving... "
46
+ page.save
47
+ print "done!\n\n"
48
+ end
49
+
50
+ print 'Finished! Press any key to close.'
51
+ gets
@@ -0,0 +1,32 @@
1
+ require 'hpricot'
2
+ require 'net/http'
3
+ include Net
4
+
5
+ def get(url)
6
+ return HTTP.get(URI.parse(url))
7
+ end
8
+
9
+ f=File.open('id2team.txt','w')
10
+ f.sync=true
11
+
12
+ ((1..4).to_a + (12..15).to_a).each do |i|
13
+ page=get("http://www.soccerbase.com/teams.sd?competitionid=#{i}")
14
+ h=Hpricot.parse page
15
+
16
+ h2=Hpricot.parse h.search('table table table')[2].inner_html
17
+
18
+ h2.search('tr').each do |tr|
19
+ begin
20
+ if tr.at('b').inner_html.strip=='Team'||tr.inner_html.index('<script')||tr.inner_html.index('<img')
21
+ next
22
+ end
23
+ rescue Exception
24
+ end
25
+ id=tr.at('a')['href'].sub(/\A.+?(\d+)\Z/, '\1')
26
+ team=tr.at('a').inner_html.strip
27
+
28
+ f.puts "#{id}\t#{team}"
29
+ end
30
+
31
+
32
+ end
data/scripts/recat.rb ADDED
@@ -0,0 +1,32 @@
1
+ require 'sunflower-commontasks.rb'
2
+ require 'sunflower-listmaker.rb'
3
+
4
+ from='Warhammer 40000'
5
+ to='Warhammer 40.000'
6
+
7
+ s=Sunflower.new
8
+ s.login
9
+ print "Logged in!\n"
10
+
11
+ print "Reading articles list... "
12
+ list=s.make_list('category-r', 'Kategoria:'+from).sort
13
+ print "done!\n\n"
14
+
15
+ # EDIT SUMMARY BELOW
16
+ $summary='zmiana nazewnictwa: Warhammer 40000 -> 40.000, [[WP:SK]]'
17
+
18
+ list.each do |title|
19
+ print "Reading page #{title}... "
20
+ page=Page.get(title)
21
+ print "modifying... "
22
+
23
+ page.codeCleanup
24
+ page.changeCategory from, to
25
+
26
+ print "saving... "
27
+ page.save
28
+ print "done!\n\n"
29
+ end
30
+
31
+ print 'Finished! Press any key to close.'
32
+ gets
data/scripts/wanted.rb ADDED
@@ -0,0 +1,72 @@
1
+ # coding: utf-8
2
+
3
+ require 'sunflower.rb'
4
+ require 'pp'
5
+
6
+ s=Sunflower.new('pl.wikipedia.org')
7
+ print "Logging in to #{s.wikiURL}... "
8
+ #s.login
9
+ print "done!\n"
10
+
11
+ # EDIT SUMMARY BELOW
12
+ $summary='aktualizacja'
13
+
14
+
15
+
16
+
17
+ $all=File.open('wantedpages-20110211.txt', 'rb'){|f| f.read.force_encoding 'UTF-8'}.split(/\r?\n/).map{|ln| a=ln.split("\t"); a[1]=a[1].to_i; a}
18
+
19
+ puts "Lock'd and loaded"
20
+
21
+ def get a, b
22
+ a,b=a.to_i, b.to_i
23
+ $all.select{|name, count| count.between? a,b}.map{|name, count| "* [[#{name}]] - #{count}"}.join "\n"
24
+ end
25
+
26
+
27
+ ranges=[
28
+ 100..9999,
29
+ 50..99,
30
+ 40..49,
31
+ 30..39,
32
+ 25..29,
33
+ 22..24,
34
+ 20..21,
35
+ 18..19,
36
+ 16..17,
37
+ 15, 14, 13, 12, 11, 10,
38
+ 9, 8, 7, 6, 5
39
+ ]
40
+
41
+ kat='A'
42
+
43
+ ranges.each do |rng|
44
+ if rng.is_a?(Range)
45
+ a,b = rng.begin, rng.end
46
+ else
47
+ a,b = rng, rng
48
+ end
49
+
50
+ n="#{a}-#{b}"
51
+ n="#{a}+" if b==9999
52
+ n="#{a}" if b==a
53
+
54
+ intro=<<EOF
55
+ Na tej stronie znajdują się najbardziej potrzebne strony, do których linki pojawiają się na #{n} stronach. Bazę utworzył Saper w lutym 2011 roku ([http://toolserver.org/~saper/wantedpages-20110211.txt pełna lista, ok. 37 MB]).
56
+
57
+ ''Po prawej podana jest liczba dolinkowanych. Niebieskie linki do wycięcia. Czerwone do ewentualnego przenoszenia na podstrony [[Wikipedia:Brakujące hasła|brakujących haseł]].''
58
+
59
+ [[Kategoria:Najbardziej potrzebne strony| #{kat}]]
60
+ EOF
61
+
62
+ title="Wikipedia:Propozycje tematów/Najbardziej potrzebne #{n} #{b==24 ? 'linki' : 'linków'}"
63
+
64
+ File.open(n+'.txt', 'wb'){|f| f.write "#{intro}\n\n#{get a,b}"}
65
+
66
+
67
+ kat=kat.succ
68
+
69
+
70
+ puts n
71
+ end
72
+
data/use-easy-bot.rb ADDED
@@ -0,0 +1,54 @@
1
+ require 'sunflower-commontasks.rb'
2
+
3
+ # EDIT WIKI URL BELOW
4
+ s=Sunflower.new('en.wikipedia.org')
5
+
6
+ print "Logging in to #{s.wikiURL}... "
7
+ # EDIT USERNAME AND PASSWORD BELOW
8
+ s.login('Username','password')
9
+ print "done!\n"
10
+
11
+ print "Reading articles list... "
12
+ # EDIT FILENAME BELOW
13
+ f=File.open('filename.txt')
14
+ list=f.read.sub(/\357\273\277/,'').strip.split(/\r?\n/)
15
+ print "done!\n\n"
16
+
17
+ # EDIT SUMMARY BELOW
18
+ $summary='Sunflower: test'
19
+
20
+ list.each do |title|
21
+ print "Reading page #{title}... "
22
+ page=Page.get(title)
23
+ print "done.\n"
24
+ print "Modifying... "
25
+
26
+ page.execute([
27
+ # commands to execute on each article
28
+ # zostaną wykonane w takiej kolejności, jak podane; wywal albo zakomentuj i wstaw własne
29
+ # EDIT BELOW
30
+ [:replace, 'test1', 'test2', true], #zamieni pierwsze wystąpienie test1 na test2 w artykule
31
+ [:replace, 'asd', 'fgh'], #jw., ale zamieni każde wystąpienie
32
+ [:replace, /(\d+).(\d+)/, '\1,\2'], #jw., ale używając regeksów; należy używać \1, nie $1
33
+ [:prepend, 'Some text.'], #doda na początku artykułu dwa entery i tekst
34
+ [:append, 'Some more text.', 4], #jw., ale na końcu i 4 entery; można podać dowolną liczbę
35
+ [:code_cleanup], #część WP:SK, zamierzam uzupełnić
36
+ [:friendly_infobox], #oczyszczony sprzątacz infoboksów
37
+
38
+ #a teraz przykłady flag; też je wywal/zakomentuj
39
+ #każda flaga ma skróty; required=r, summary=s - można używać zamiennie
40
+ [[:replace, 'required'], 'qwe', 'rty'] #zamieni każde qwe na rty; jeśli nie uda mu się wykonać żadnych zmian, anuluje wszystko, co zrobiły inne polecenia oraz nie będzie zapisywał artykułu
41
+ [:replace, 'r', 'summary:testowy opis'], 'qwe', 'rty'] #jw., ale w razie sukcesu doda tekst (wraz z przecinkiem) do opisu zmian; można używać dowolnej liczby flag dla jednego polecenia, w dowolnej kolejności
42
+
43
+ #Teoretycznie możliwe jest też użycie flag only-if oraz only-if-not (skróty: oi, !oi; po dwukropku trzeba podać nazwę modułu (np. replace), który musi/nie może zostać uruchomiony i wykonać zmian, aby uruchomił się moduł oznaczony flagą. Ale to trochę bez sensu, bo w gruncie rzeczy nie wiadomo, co taki replace zrobił, a na razie wszystkie pozostałe zawsze coś zmienią. Kiedyś jednak może się przydać).
44
+ # EDIT ABOVE
45
+ ])
46
+
47
+ print "done.\n"
48
+ print "Saving... "
49
+ page.save
50
+ print "done!\n\n"
51
+ end
52
+
53
+ print 'Finished! Press any key to close.'
54
+ gets