sunflower 0.4.5 → 0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -1
- data/example-bot.rb +7 -8
- data/lib/sunflower/commontasks.rb +3 -77
- data/lib/sunflower/core.rb +257 -78
- data/lib/sunflower/list.rb +255 -0
- data/lib/sunflower.rb +1 -1
- metadata +3 -12
- data/lib/sunflower/listmaker.rb +0 -160
- data/scripts/ZDBOT.rb +0 -62
- data/scripts/aktualizacjapilkarzy.rb +0 -339
- data/scripts/author-list.rb +0 -36
- data/scripts/changeimage.rb +0 -42
- data/scripts/fix-multiple-same-refs.rb +0 -102
- data/scripts/insight.rb +0 -133
- data/scripts/make-id2team-list.rb +0 -32
- data/scripts/wanted.rb +0 -72
- data/use-easy-bot.rb +0 -54
data/scripts/wanted.rb
DELETED
@@ -1,72 +0,0 @@
|
|
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
DELETED
@@ -1,54 +0,0 @@
|
|
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
|