Rateless-Bot 0.1.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c3dc24cd0216bcab6de6050bb5c1993eeaa61a78
4
+ data.tar.gz: b500f83d8a76e11600fad0857d77d9e7209c8e7c
5
+ SHA512:
6
+ metadata.gz: 2b7a66d59914e526db7ee55f7550abf59763dcd31eb7dd1f06e372e60fc83bc83cf9a89b4b92fc145f81ec424bfd2e054f940eb7ef90dd33497e9c6125261e22
7
+ data.tar.gz: ef62b5bf99d6ab29972f4a01aab86b13283b7f9bab413fe9f1cf2e1850dcedf0bff07cb7c3edac054f3fe0d9d6ff9f58ef93b603c65c82ae0de35d100319f0d7
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ # vim stuff
12
+ *.swp
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.0
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in Rateless-Bot.gemspec
4
+ gemspec
5
+
6
+ gem 'cinch'
7
+ gem 'video_info'
data/LICENSE ADDED
@@ -0,0 +1,17 @@
1
+ Copyright (c) 2014 Vincent Heuken
2
+
3
+ This software is provided 'as-is', without any express or implied
4
+ warranty. In no event will the authors be held liable for any damages
5
+ arising from the use of this software.
6
+
7
+ Permission is granted to anyone to use this software for any purpose,
8
+ including commercial applications, and to alter it and redistribute it
9
+ freely, subject to the following restrictions:
10
+
11
+ 1. The origin of this software must not be misrepresented; you must not
12
+ claim that you wrote the original software. If you use this software
13
+ in a product, an acknowledgment in the product documentation would be
14
+ appreciated but is not required.
15
+ 2. Altered source versions must be plainly marked as such, and must not be
16
+ misrepresented as being the original software.
17
+ 3. This notice may not be removed or altered from any source distribution.
@@ -0,0 +1,2 @@
1
+ # Rateless-Bot
2
+ IRC bot for my IRC channel
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'Rateless/Bot/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "Rateless-Bot"
8
+ spec.version = Rateless::Bot::VERSION
9
+ spec.authors = ["Vincent Heuken"]
10
+ spec.email = ["me@vincentheuken.com"]
11
+
12
+ spec.summary = "IRC Bot"
13
+ spec.description = "IRC Bot"
14
+ spec.homepage = "http://www.foobar.com"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ #spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.executables = ["rateless_bot"]
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.8"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "Rateless/Bot"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'daemons'
4
+
5
+ Daemons.run('bot.rb')
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'daemons'
4
+ require 'bot'
@@ -0,0 +1,7 @@
1
+ require "Rateless/Bot/version"
2
+
3
+ module Rateless
4
+ module Bot
5
+ # Your code goes here...
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module Rateless
2
+ module Bot
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ require 'cinch'
2
+ require 'yaml'
3
+ require_relative 'plugins/coin_flipper'
4
+ require_relative 'plugins/dice_roller'
5
+ require_relative 'plugins/help'
6
+ require_relative 'plugins/magic_eight_ball'
7
+ require_relative 'plugins/video_title'
8
+
9
+ bot = Cinch::Bot.new do
10
+ configure do |c|
11
+ c.nick = "Rateless-Bot"
12
+ c.server = "irc.rizon.net"
13
+ c.channels = ["#rateless"]
14
+
15
+ c.plugins.plugins = [CoinFlipper,
16
+ DiceRoller,
17
+ Help,
18
+ MagicEightBall,
19
+ VideoTitle]
20
+ end
21
+ end
22
+
23
+ bot.start
@@ -0,0 +1,15 @@
1
+ require 'cinch'
2
+
3
+ class CoinFlipper
4
+ def help
5
+ "!flipcoin - flips a coin"
6
+ end
7
+
8
+ include Cinch::Plugin
9
+
10
+ match "flipcoin"
11
+
12
+ def execute(m)
13
+ m.reply ["Heads!", "Tails!"][rand(2)]
14
+ end
15
+ end
@@ -0,0 +1,25 @@
1
+ require 'cinch'
2
+
3
+ class DiceRoller
4
+ def help
5
+ '!roll XdY - rolls dice (replace X with number of dice and Y with number of sides)'
6
+ end
7
+
8
+ include Cinch::Plugin
9
+
10
+ match /roll \d+d\d+/
11
+
12
+ def execute(m)
13
+ command = /\d+d\d+/.match(m.message).to_s
14
+
15
+ num_of_dice = command.split('d')[0].to_i
16
+ num_of_sides = command.split('d')[1].to_i
17
+
18
+ reply = ''
19
+
20
+ num_of_dice.times { reply << rand(1..num_of_sides).to_s + ' ' }
21
+
22
+ m.reply reply
23
+ end
24
+
25
+ end
@@ -0,0 +1,17 @@
1
+ require 'cinch'
2
+
3
+ class Help
4
+ include Cinch::Plugin
5
+
6
+ match "help"
7
+
8
+ def execute(m)
9
+ m.user.notice("List of commands:")
10
+
11
+ bot.plugins.each do |p|
12
+ if p.respond_to? :help
13
+ m.user.notice(p.help)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,36 @@
1
+ require 'cinch'
2
+
3
+ class MagicEightBall
4
+ def help
5
+ '!8ball - Magic Eight Ball'
6
+ end
7
+ @@answers = ['It is certain',
8
+ 'It is decidedly so',
9
+ 'Without a doubt',
10
+ 'Yes, definately',
11
+ 'You may rely on it',
12
+ 'As I see it, yes',
13
+ 'Most likely',
14
+ 'Outlook: good',
15
+ 'Yes',
16
+ 'Signs point to yes',
17
+ 'Reply hazy; try again',
18
+ 'Ask again later',
19
+ 'Better not tell you now',
20
+ 'Cannot predict now',
21
+ 'Concentrate and ask again',
22
+ 'Don\'t count on it',
23
+ 'My reply is: no',
24
+ 'My sources say: no',
25
+ 'Outlook: not so good',
26
+ 'Very doubtful']
27
+
28
+ include Cinch::Plugin
29
+
30
+ match "8ball"
31
+
32
+ def execute(m)
33
+ puts('h')
34
+ m.reply @@answers[rand(0..@@answers.length-1)]
35
+ end
36
+ end
@@ -0,0 +1,27 @@
1
+ require 'uri'
2
+ require 'cinch'
3
+ require 'video_info'
4
+
5
+ class VideoTitle
6
+ include Cinch::Plugin
7
+
8
+ listen_to :message
9
+
10
+ def listen(m)
11
+ if m.message.match(/youtube.com\/watch\?/)
12
+ video_url = get_url(m.message)
13
+
14
+ m.reply get_video_title(video_url)
15
+ end
16
+ end
17
+
18
+ def get_url(message)
19
+ index = message.index("youtube.com\/watch\?")
20
+ message[index..message.length].split(' ')[0]
21
+ end
22
+
23
+ def get_video_title(video_url)
24
+ video = VideoInfo.new(video_url)
25
+ video.title
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ require 'daemons'
2
+
3
+ Daemons.run('bot.rb')
@@ -0,0 +1,13 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "Rateless-Bot"
3
+ s.version = '0.0.2'
4
+ s.date = '2014-10-30'
5
+ s.summary = "Hola!"
6
+ s.description = "A simple hello world gem"
7
+ s.authors = ["Vincent Heuken"]
8
+ s.email = 'me@vincentheuken.com'
9
+ s.files = ["lib/rateless_bot_controller.rb"]
10
+ s.executables = ["rateless_bot"]
11
+ s.homepage = 'https://github.com/vheuken/Rateless-Bot'
12
+ s.license = 'zlib'
13
+ end
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Rateless-Bot
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Vincent Heuken
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-03-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: IRC Bot
42
+ email:
43
+ - me@vincentheuken.com
44
+ executables:
45
+ - rateless_bot
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".gitignore"
50
+ - ".travis.yml"
51
+ - Gemfile
52
+ - Gemfile.lock
53
+ - LICENSE
54
+ - README.md
55
+ - Rakefile
56
+ - Rateless-Bot.gemspec
57
+ - bin/console
58
+ - bin/rateless_bot
59
+ - bin/setup
60
+ - exe/rateless_bot
61
+ - lib/.bot.rb.swp
62
+ - lib/Rateless/Bot.rb
63
+ - lib/Rateless/Bot/version.rb
64
+ - lib/bot.rb
65
+ - lib/plugins/.lastfm.rb.swp
66
+ - lib/plugins/coin_flipper.rb
67
+ - lib/plugins/dice_roller.rb
68
+ - lib/plugins/help.rb
69
+ - lib/plugins/magic_eight_ball.rb
70
+ - lib/plugins/video_title.rb
71
+ - lib/rateless_bot_controller.rb
72
+ - rateless_bot.gemspec.bk
73
+ homepage: http://www.foobar.com
74
+ licenses: []
75
+ metadata: {}
76
+ post_install_message:
77
+ rdoc_options: []
78
+ require_paths:
79
+ - lib
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ requirements: []
91
+ rubyforge_project:
92
+ rubygems_version: 2.4.6
93
+ signing_key:
94
+ specification_version: 4
95
+ summary: IRC Bot
96
+ test_files: []