travian_bot 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -5,4 +5,5 @@ group :development do
5
5
  gem 'jeweler', '~> 1.6.4'
6
6
  end
7
7
 
8
- gem 'selenium-webdriver'
8
+ gem 'selenium-webdriver'
9
+ gem 'chronic_duration'
data/Gemfile.lock CHANGED
@@ -3,6 +3,8 @@ GEM
3
3
  specs:
4
4
  childprocess (0.2.2)
5
5
  ffi (~> 1.0.6)
6
+ chronic_duration (0.9.6)
7
+ numerizer (~> 0.1.1)
6
8
  ffi (1.0.9)
7
9
  git (1.2.5)
8
10
  jeweler (1.6.4)
@@ -10,6 +12,7 @@ GEM
10
12
  git (>= 1.2.5)
11
13
  rake
12
14
  json_pure (1.6.1)
15
+ numerizer (0.1.1)
13
16
  rake (0.9.2.2)
14
17
  rubyzip (0.9.4)
15
18
  selenium-webdriver (2.9.1)
@@ -23,5 +26,6 @@ PLATFORMS
23
26
 
24
27
  DEPENDENCIES
25
28
  bundler
29
+ chronic_duration
26
30
  jeweler (~> 1.6.4)
27
31
  selenium-webdriver
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
@@ -1,6 +1,6 @@
1
1
  require 'selenium-webdriver'
2
- Dir.glob(File.join(File.dirname(__FILE__), '/application/*.rb')).sort.each { |lib| load lib }
3
2
 
3
+ Dir.glob(File.join(File.dirname(__FILE__), '/application/*.rb')).sort.each { |lib| load lib }
4
4
 
5
5
  class TravianBot
6
6
  class Application
@@ -9,16 +9,20 @@ class TravianBot
9
9
  include Queue
10
10
  include Display
11
11
  include Buildings
12
+ include Hero
12
13
 
13
14
  # Is executed by the travinbot shell script.
14
15
  def run!(*arguments)
15
16
  h1('Welcome to your TravianBot')
16
17
  @game = login
17
18
 
19
+ h2('Your avaible actions')
20
+ #command = gets
21
+ #self.send(command)
18
22
  current_building_queue
19
23
  current_troop_movements
20
24
  current_avaible_buildings
21
-
25
+ start_closest_adventure @game
22
26
  @game.quit
23
27
 
24
28
  return 1
@@ -5,9 +5,9 @@ class TravianBot
5
5
  module Connection
6
6
  # Login in to travian page
7
7
  def login
8
- url, user, password = get_credentials
8
+ @url, user, password = get_credentials
9
9
  driver = Selenium::WebDriver.for :firefox
10
- driver.navigate.to(url)
10
+ driver.navigate.to(@url)
11
11
  # Get the form fields.
12
12
  name_input = driver.find_element(:name, 'name')
13
13
  password_input = driver.find_element(:name, 'password')
@@ -0,0 +1,29 @@
1
+ require 'travian_bot/application/time'
2
+
3
+ class TravianBot
4
+ class Application
5
+ module Hero
6
+ include TravianBot::Application::Navigation
7
+ include TravianBot::Application::Time
8
+
9
+ def start_closest_adventure(selenium)
10
+ to_hero_quest_page(selenium)
11
+ elements = selenium.find_elements(:xpath, '//div[@class="hero_adventure"]/table/tbody/tr')
12
+ quests = Hash.new
13
+
14
+ elements.each_with_index do |item, index|
15
+ quests[index] = to_seconds(item.find_element(:class, 'moveTime').text)
16
+ end
17
+
18
+ shortest_quest = quests.sort{|a,b| a[1] <=> b[1]}.first.first
19
+ elements[shortest_quest].find_element(:class, 'gotoAdventure').click
20
+
21
+ link = selenium.find_element(:link_text, 'Abenteuer starten')
22
+ link.click
23
+
24
+ confirm_link = selenium.find_element(:id, 'btn_ok')
25
+ confirm_link.click
26
+ end
27
+ end
28
+ end
29
+ end
@@ -21,9 +21,12 @@ class TravianBot
21
21
  to_page(selenium, 'reports')
22
22
  end
23
23
 
24
+ def to_hero_quest_page(selenium)
25
+ selenium.navigate.to @url + "hero_adventure.php"
26
+ end
27
+
24
28
  private
25
29
  def to_page(selenium, target)
26
- wait = Selenium::WebDriver::Wait.new
27
30
  link = selenium.find_element(:xpath, "//ul[@id='navigation']/li[@class='#{target}']/a")
28
31
  link.click
29
32
  end
@@ -0,0 +1,11 @@
1
+ require 'chronic_duration'
2
+
3
+ class TravianBot
4
+ class Application
5
+ module Time
6
+ def to_seconds(input)
7
+ ChronicDuration.parse(input)
8
+ end
9
+ end
10
+ end
11
+ end
data/travian_bot.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "travian_bot"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Roman Simecek"]
12
- s.date = "2011-10-24"
12
+ s.date = "2011-10-25"
13
13
  s.description = "A little bot for travian."
14
14
  s.email = "roman.simecek@cyt.ch"
15
15
  s.executables = ["travianbot"]
@@ -31,8 +31,10 @@ Gem::Specification.new do |s|
31
31
  "lib/travian_bot/application/buildings.rb",
32
32
  "lib/travian_bot/application/connection.rb",
33
33
  "lib/travian_bot/application/display.rb",
34
+ "lib/travian_bot/application/hero.rb",
34
35
  "lib/travian_bot/application/navigation.rb",
35
36
  "lib/travian_bot/application/queue.rb",
37
+ "lib/travian_bot/application/time.rb",
36
38
  "test/helper.rb",
37
39
  "test/test_travian_bot.rb",
38
40
  "travian_bot.gemspec"
@@ -48,15 +50,18 @@ Gem::Specification.new do |s|
48
50
 
49
51
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
52
  s.add_runtime_dependency(%q<selenium-webdriver>, [">= 0"])
53
+ s.add_runtime_dependency(%q<chronic_duration>, [">= 0"])
51
54
  s.add_development_dependency(%q<bundler>, [">= 0"])
52
55
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
53
56
  else
54
57
  s.add_dependency(%q<selenium-webdriver>, [">= 0"])
58
+ s.add_dependency(%q<chronic_duration>, [">= 0"])
55
59
  s.add_dependency(%q<bundler>, [">= 0"])
56
60
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
57
61
  end
58
62
  else
59
63
  s.add_dependency(%q<selenium-webdriver>, [">= 0"])
64
+ s.add_dependency(%q<chronic_duration>, [">= 0"])
60
65
  s.add_dependency(%q<bundler>, [">= 0"])
61
66
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
62
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travian_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-24 00:00:00.000000000Z
12
+ date: 2011-10-25 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: selenium-webdriver
16
- requirement: &2156250240 !ruby/object:Gem::Requirement
16
+ requirement: &2165300380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156250240
24
+ version_requirements: *2165300380
25
+ - !ruby/object:Gem::Dependency
26
+ name: chronic_duration
27
+ requirement: &2165299440 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2165299440
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: bundler
27
- requirement: &2156243140 !ruby/object:Gem::Requirement
38
+ requirement: &2165298460 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: '0'
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *2156243140
46
+ version_requirements: *2165298460
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: jeweler
38
- requirement: &2156240340 !ruby/object:Gem::Requirement
49
+ requirement: &2165297340 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,7 +54,7 @@ dependencies:
43
54
  version: 1.6.4
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2156240340
57
+ version_requirements: *2165297340
47
58
  description: A little bot for travian.
48
59
  email: roman.simecek@cyt.ch
49
60
  executables:
@@ -66,8 +77,10 @@ files:
66
77
  - lib/travian_bot/application/buildings.rb
67
78
  - lib/travian_bot/application/connection.rb
68
79
  - lib/travian_bot/application/display.rb
80
+ - lib/travian_bot/application/hero.rb
69
81
  - lib/travian_bot/application/navigation.rb
70
82
  - lib/travian_bot/application/queue.rb
83
+ - lib/travian_bot/application/time.rb
71
84
  - test/helper.rb
72
85
  - test/test_travian_bot.rb
73
86
  - travian_bot.gemspec
@@ -86,7 +99,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
99
  version: '0'
87
100
  segments:
88
101
  - 0
89
- hash: 95389688137740500
102
+ hash: -1008102311582387206
90
103
  required_rubygems_version: !ruby/object:Gem::Requirement
91
104
  none: false
92
105
  requirements: