sunflower 0.4 → 0.4.1

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 CHANGED
@@ -1,4 +1,4 @@
1
- Sunflower is licensed under CC-BY-SA 3.0.
2
-
3
- Author: matma.rex@gmail.com
4
-
1
+ Sunflower is licensed under CC-BY-SA 3.0.
2
+
3
+ Author: matma.rex@gmail.com
4
+
data/README CHANGED
@@ -1,4 +1,4 @@
1
- Version: 0.4 alpha
1
+ Version: 0.4.1 alpha
2
2
 
3
3
  >>> English:
4
4
 
data/bin/sunflower-setup CHANGED
@@ -1,68 +1,68 @@
1
- require 'sunflower'
2
-
3
-
4
- path = Sunflower.path
5
-
6
-
7
-
8
- puts "Welcome to Sunflower's setup script."
9
- puts ""
10
-
11
- puts "If you set your home wiki and userdata, you will not have to enter it in every script."
12
- puts "Your userdata will be saved (IN PLAINTEXT!) in this file:"
13
- puts " #{path}"
14
-
15
- puts ""
16
-
17
- print "Enter your home wiki (for ex. en.wikipedia.org): "
18
- home=gets.strip
19
-
20
- print "Enter your bot's nick on the home wiki: "
21
- nick=gets.strip
22
-
23
- print "Enter your bot's password on home wiki (WILL BE SHOWN IN PLAINTEXT): "
24
- pass=gets.strip
25
-
26
- puts ""
27
-
28
- worked = true
29
- puts "Trying to connect with the data provided..."
30
- begin
31
- s=Sunflower.new home
32
- s.login nick, pass
33
- rescue
34
- worked = false
35
- error = $!.message
36
- end
37
-
38
- if worked
39
- puts "It seems to work!"
40
- puts "WARNING! USER DOES NOT HAVE BOT RIGHTS!" if !s.isBot?
41
- else
42
- puts "Whoops, it didn't work. The error message is:"
43
- puts error
44
- end
45
-
46
- save = worked
47
-
48
- if !worked
49
- begin
50
- print "Do you want to save the data anyway? [yn] "
51
- ans = gets.strip
52
- end until ans=~/[yn]/i
53
-
54
- save = (ans.downcase=='y')
55
- end
56
-
57
- if save
58
- f=File.open(path, "w")
59
- f.write [home, nick, pass].join "\n"
60
- f.close
61
-
62
- puts "User data has been saved. Remember that your password is saved in plaintext!"
63
- puts ""
64
-
65
- puts "If you ever want to erase your login data, simply delete the file."
66
- else
67
- puts "User data has not been saved. You can run this setup again anytime."
68
- end
1
+ require 'sunflower'
2
+
3
+
4
+ path = Sunflower.path
5
+
6
+
7
+
8
+ puts "Welcome to Sunflower's setup script."
9
+ puts ""
10
+
11
+ puts "If you set your home wiki and userdata, you will not have to enter it in every script."
12
+ puts "Your userdata will be saved (IN PLAINTEXT!) in this file:"
13
+ puts " #{path}"
14
+
15
+ puts ""
16
+
17
+ print "Enter your home wiki (for ex. en.wikipedia.org): "
18
+ home=gets.strip
19
+
20
+ print "Enter your bot's nick on the home wiki: "
21
+ nick=gets.strip
22
+
23
+ print "Enter your bot's password on home wiki (WILL BE SHOWN IN PLAINTEXT): "
24
+ pass=gets.strip
25
+
26
+ puts ""
27
+
28
+ worked = true
29
+ puts "Trying to connect with the data provided..."
30
+ begin
31
+ s=Sunflower.new home
32
+ s.login nick, pass
33
+ rescue
34
+ worked = false
35
+ error = $!.message
36
+ end
37
+
38
+ if worked
39
+ puts "It seems to work!"
40
+ puts "WARNING! USER DOES NOT HAVE BOT RIGHTS!" if !s.isBot?
41
+ else
42
+ puts "Whoops, it didn't work. The error message is:"
43
+ puts error
44
+ end
45
+
46
+ save = worked
47
+
48
+ if !worked
49
+ begin
50
+ print "Do you want to save the data anyway? [yn] "
51
+ ans = gets.strip
52
+ end until ans=~/[yn]/i
53
+
54
+ save = (ans.downcase=='y')
55
+ end
56
+
57
+ if save
58
+ f=File.open(path, "w")
59
+ f.write [home, nick, pass].join "\n"
60
+ f.close
61
+
62
+ puts "User data has been saved. Remember that your password is saved in plaintext!"
63
+ puts ""
64
+
65
+ puts "If you ever want to erase your login data, simply delete the file."
66
+ else
67
+ puts "User data has not been saved. You can run this setup again anytime."
68
+ end
data/example-bot.rb CHANGED
@@ -1,12 +1,12 @@
1
- # This is the most basic bot possible.
2
-
3
- require 'sunflower-commontasks.rb'
4
-
5
- s=Sunflower.new
6
- s.login
7
-
8
- $summary='Sunflower: test'
9
-
10
- p=Page.get('Test')
11
- p.write p.text+"\n\ntest"
1
+ # This is the most basic bot possible.
2
+
3
+ require 'sunflower-commontasks.rb'
4
+
5
+ s=Sunflower.new
6
+ s.login
7
+
8
+ $summary='Sunflower: test'
9
+
10
+ p=Page.get('Test')
11
+ p.write p.text+"\n\ntest"
12
12
  p.save
data/lib/sunflower.rb CHANGED
@@ -1,4 +1,4 @@
1
- # coding: utf-8
2
- require 'sunflower/core'
3
- require 'sunflower/commontasks'
1
+ # coding: utf-8
2
+ require 'sunflower/core'
3
+ require 'sunflower/commontasks'
4
4
  require 'sunflower/listmaker'
@@ -19,7 +19,7 @@ class SunflowerError < StandardError; end
19
19
  #
20
20
  # You can use multiple Sunflowers at once, to work on multiple wikis.
21
21
  class Sunflower
22
- VERSION = '0.4'
22
+ VERSION = '0.4.1'
23
23
 
24
24
  INVALID_CHARS = %w(# < > [ ] | { })
25
25
  INVALID_CHARS_REGEX = Regexp.union *INVALID_CHARS
@@ -214,7 +214,7 @@ class Page
214
214
  @text = r['revisions'][0]['*']
215
215
  end
216
216
 
217
- @orig_text = @text
217
+ @orig_text = @text.dup
218
218
 
219
219
  @preloaded_text = true
220
220
  end
data/use-easy-bot.rb CHANGED
@@ -1,54 +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.'
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
54
  gets
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunflower
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &8696940 !ruby/object:Gem::Requirement
16
+ requirement: &8696472 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *8696940
24
+ version_requirements: *8696472
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &8696460 !ruby/object:Gem::Requirement
27
+ requirement: &8695752 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *8696460
35
+ version_requirements: *8695752
36
36
  description: Sunflower is a lightweight library to provide access to MediaWiki API
37
37
  from Ruby.
38
38
  email: matma.rex@gmail.com