sunflower 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|