sunflower 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +4 -0
- data/README +21 -0
- data/bin/sunflower-setup +68 -0
- data/example-bot.rb +12 -0
- data/lib/sunflower/commontasks.rb +251 -0
- data/lib/sunflower/core.rb +253 -0
- data/lib/sunflower/listmaker.rb +152 -0
- data/lib/sunflower.rb +4 -0
- data/scripts/ZDBOT.rb +62 -0
- data/scripts/aktualizacjapilkarzy.rb +339 -0
- data/scripts/author-list.rb +36 -0
- data/scripts/changeimage.rb +42 -0
- data/scripts/fix-bold-in-headers.rb +53 -0
- data/scripts/fix-double-pipes.rb +49 -0
- data/scripts/fix-langs.rb +43 -0
- data/scripts/fix-multiple-same-refs.rb +102 -0
- data/scripts/fix-some-entities.rb +43 -0
- data/scripts/fix-unicode-control-chars.rb +51 -0
- data/scripts/insight.rb +133 -0
- data/scripts/lekkoatl-portal.rb +51 -0
- data/scripts/make-id2team-list.rb +32 -0
- data/scripts/recat.rb +32 -0
- data/scripts/wanted.rb +72 -0
- data/use-easy-bot.rb +54 -0
- metadata +115 -0
@@ -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='− → ← ↓ ↑ ∞ · • å à ñ ä ö ü ß – — ⇒ £ À ¢ ↔ " æ Å … ’ ‘'.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
|
data/scripts/insight.rb
ADDED
@@ -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
|