bobby-b 0.0.3 → 0.0.5

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bobby-b +15 -13
  3. data/lib/bobby-b/bobby.rb +43 -81
  4. metadata +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4373a8fdcc2fc70669b84c224ed7ca4b1eebf31ab667f99657a23b5c5d608260
4
- data.tar.gz: 407d453d22aa6bbbe67cd266df7b1b3358d1b944e00078a1da980832f5cb62a5
3
+ metadata.gz: 9dd2555e18244ea6a5e0862eb60d1450ac0524cc8b6b77027ae071b01bea9f02
4
+ data.tar.gz: '02998d7226576ce12911bcd5cea75ce87a8bfb0167784d7885bd3d2c0e8b7981'
5
5
  SHA512:
6
- metadata.gz: b9562e38a10505d34083d97d168c77d3971e8ac8addc42deacd91907ce6a3f492f6c46b5ba561c457ded3f5b1de5cafca0ebcbac498c0217e75fae2594fa6178
7
- data.tar.gz: 25dccc68641c5675eff03d5d6314b406b802f61e1176ae96003ee3fa547c437f7b7e027278844255f2d8efe71c36130eb39790924215c3d8c82f20a058fd0a24
6
+ metadata.gz: 320c84602e1a37504fc8e372175f5991da294df2e450918c66f4410941d54fb5601a3a8c342b97916434d9166612c0148728615bb0b9cdbc2a6f41b75cc305f9
7
+ data.tar.gz: 2c99c51fc698ba4a8d372048b53efa6d548946fd46508a643274ea028b6e3357151f4ff1e70451e0a2d77309fae6e439a941066daecd04b794fed34c3a23ae16
@@ -1,13 +1,15 @@
1
- #!/usr/bin/env ruby
2
- require "optparse"
3
- require "ostruct"
4
- require "bobby-b/bobby"
5
- include Bobby
6
-
7
- options = OpenStruct.new
8
- OptionParser.new do |parser|
9
- parser.banner = "Usage: bobby-b [options]"
10
- parser.on("-k", "--discord-key=DISCORDKEY", "Discord API bot key"){ |k| options[:api_key] = k }
11
- end.parse!
12
-
13
- Bobby.start(options)
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'optparse'
5
+ require 'ostruct'
6
+ require 'bobby-b/bobby'
7
+
8
+ options = OpenStruct.new
9
+ OptionParser.new do |parser|
10
+ parser.banner = 'Usage: bobby-b [options]'
11
+ parser.on('-k', '--discord-key=DISCORDKEY', 'Discord API bot key') { |k| options[:api_key] = k }
12
+ parser.on('-f', '--responses-file=RESPONSES_FILE', 'List of responses') { |k| options[:responses_file] = k }
13
+ end.parse!
14
+
15
+ Bobby.new(options).start
@@ -1,87 +1,49 @@
1
- require "discordrb"
1
+ # frozen_string_literal: true
2
2
 
3
- module Bobby
4
- def start(options)
5
- responses = [
6
- "IS THAT HOW YOU SPEAK TO YOUR KING??",
7
- "YOU HEARD THE HAND, THE KING'S TOO FAT FOR HIS ARMOR! GO FIND THE BREASTPLATE STRETCHER! NOW!",
8
- "THE WHORE IS PREGNANT!",
9
- "[YOUR MOTHER WAS A DUMB WHORE WITH A FAT ARSE, DID YOU KNOW THAT?](https://i.imgur.com/g5SzSKk.gifv)",
10
- "[COME, BOW BEFORE YOUR KING! BOW, YA SHITS!](https://i.imgur.com/hrCP6Uk.gifv)",
11
- "GODS I WAS STRONG THEN",
12
- "START THE DAMN JOUST BEFORE I PISS MESELF!",
13
- "STOP THIS MADNESS, IN THE NAME OF YOUR KING!",
14
- "A DOTHRAKI HORDE ON AN OPEN FIELD, NED!",
15
- "GODS WHAT A STUPID NAME!",
16
- "WINE! WINE! MOOOOOOOOAR WINE!",
17
- "THANK THE GODS FOR BESSIE AND HER TITS",
18
- "YOU GOT FAT!",
19
- "THERE'S A WAR COMING, NED. I DON'T KNOW WHEN, I DON'T KNOW WHO WE'LL BE FIGHTING...BUT IT'S COMING!",
20
- "OH, IT'S UNSPEAKABLE TO YOU? WHAT HER FATHER DID TO YOUR FAMILY, THAT WAS UNSPEAKABLE!",
21
- "SOON ENOUGH, THAT CHILD WILL SPREAD HER LEGS AND START BREEDING!",
22
- "DO YOU THINK IT'S HONOR THAT'S KEEPING THE PEACE?! IT'S FEAR! FEAR AND BLOOD!",
23
- "CAREFUL, NED! CAREFUL NOW!",
24
- "YOU'RE MY COUNCIL, COUNSEL! SPEAK SENSE TO THIS HONORABLE FOOL!",
25
- "YOU'RE THE KING'S HAND! YOU'LL DO AS I COMMAND, OR I'LL FIND ME A HAND WHO WILL!",
26
- "OUT! OUT, DAMN YOU! I'M DONE WITH YOU! GO, RUN BACK TO WINTERFELL! I'LL HAVE YOUR HEAD ON A SPIKE!",
27
- "HOLD YOUR TONGUE!",
28
- "WEAR IT IN SILENCE, OR I'LL HONOR YOU AGAIN!",
29
- "PISS ON THAT! SEND A RAVEN! I WANT YOU TO STAY! I'M THE KING, I GET WHAT I WANT!",
30
- "WHO NAMED YOU? SOME HALFWIT WITH A STUTTER??",
31
- "IS THAT WHAT EMPTY MEANS??",
32
- "I WARNED YOU THIS WOULD HAPPEN! BACK IN THE NORTH, I WARNED YOU, BUT YOU DIDN'T CARE TO HEAR! WELL, HEAR IT NOW!",
33
- "WHY HAVE I NOT SEEN YOU? WHERE THE HELL HAVE YOU BEEN?",
34
- "I'VE GOT SEVEN KINGDOMS TO RULE! ONE KING, SEVEN KINGDOMS!",
35
- "MY, YOU'RE A PRETTY ONE! AND YOUR NAME IS?",
36
- "OHHH, SHOW US YOUR MUSCLES! YOU'LL BE A SOLDIER!",
37
- "TAKE ME TO YOUR CRYPT, I WANT TO PAY MY RESPECTS!",
38
- "WE WERE AT WAR! NONE OF US KNEW IF WE WERE GONNA GO BACK HOME AGAIN!",
39
- "THEY NEVER TELL YOU HOW THEY ALL SHIT THEMSELVES! THEY DON'T PUT THAT PART IN THE SONGS!",
40
- "YOU EVER FUCK A RIVERLANDS GIRL?",
41
- "YES, IT'S BEEN A LONG TIME... BUT I STILL REMEMBER EVERY FACE!",
42
- "STUPID BOY!",
43
- "HE COULD HAVE LINGERED ON THE EDGE OF THE BATTLE WITH THE SMART BOYS, AND TODAY HIS WIFE WOULD BE MAKING HIM MISERABLE, HIS SONS WOULD BE INGRATES, AND HE WOULD BE WAKING THREE TIMES IN THE NIGHT TO PISS INTO A BOWL!",
44
- "SURROUNDED BY LANNISTERS! EVERY TIME I CLOSE MY EYES I SEE THEIR BLONDE HAIR AND THEIR SMUG, SATISFIED FACES!",
45
- "IT MUST WOUND YOUR PRIDE! STANDING OUT THERE, LIKE A GLORIFIED SENTRY!",
46
- "FORCED TO MIND THE DOOR WHILE YOUR KING EATS AND DRINKS AND SHITS AND FUCKS!",
47
- "WE'RE TELLING WAR STORIES! WHO WAS YOUR FIRST KILL, NOT COUNTING OLD MEN?",
48
- "DID YOU EVER MAKE THE EIGHT?",
49
- "EASY, BOY! YOU MIGHT BE MY BROTHER BUT YOU'RE SPEAKING TO THE KING!",
50
- "DID YOU HAVE TO BURY HER IN A PLACE LIKE THIS?",
51
- "SHE BELONGED WITH ME!",
52
- "SHE SHOULD BE ON A HILL SOMEWHERE WITH THE SUN AND THE CLOUDS ABOVE HER!",
53
- "YOU LET THAT LITTLE GIRL DISARM YOU?",
54
- "I'M NOT TRYING TO HONOR YOU, I'M TRYING TO GET YOU TO RUN MY KINGDOM WHILE I EAT, DRINK AND WHORE MY WAY TO AN EARLY GRAVE!",
55
- "THAT'S ALL WHAT THE REALM IS NOW. BACKSTABBING AND SCHEMING AND ARSE-LICKING AND MONEY-GRUBBING!",
56
- "ALL I WANTED TO DO WAS CRACK SKULLS AND FUCK GIRLS!",
57
- "IN MY DREAMS, I KILL HIM EVERY NIGHT!",
58
- "YOU HELPED ME WIN THE IRON THRONE, NOW HELP ME KEEP THE DAMN THING! WE WERE MEANT TO RULE TOGETHER!",
59
- "I THOUGHT BEING KING MEANT I COULD DO WHATEVER I WANTED!",
60
- "IT'S A GREAT CRIME TO LIE TO A KING!",
61
- "THE GODS MOCK THE PRAYERS OF KINGS AND COWHERDS ALIKE!",
62
- "BACKSTABBING DOESN'T PREPARE YOU FOR A FIGHT!",
63
- "DRINK AND STAY QUIET, THE KING IS TALKING!",
64
- "I WAS NEVER SO ALIVE AS WHEN I WAS WINNING THIS THRONE, OR SO DEAD AS NOW THAT I'VE WON IT!",
65
- "GIVE ME SOMETHING FOR THE PAIN AND LET ME DIE!",
66
- "I ASK YOU, NED, WHAT GOOD IS IT TO WEAR A CROWN?",
67
- "THE GODS BE DAMNED! IT WAS A HOLLOW VICTORY THEY GAVE ME!",
68
- "I SIT ON THE DAMN IRON SEAT WHEN I MUST. DOES THAT MEAN I DON'T HAVE THE SAME HUNGERS AS OTHER MEN?",
69
- "A BIT OF WINE NOW AND AGAIN, A GIRL SQUEALING IN BED, THE FEEL OF A HORSE BETWEEN MY LEGS?",
70
- "SEVEN HELLS, NED, I WANT TO HIT SOMEONE!",
71
- "MORE THAN ONCE, I HAVE DREAMED OF GIVING UP THE CROWN!",
72
- "TAKE SHIP FOR THE FREE CITIES WITH MY HORSE AND MY HAMMER, SPEND MY TIME WARRING AND WHORING, THAT’S WHAT I WAS MADE FOR!",
73
- "THE SELLSWORD KING, HOW THE SINGERS WOULD LOVE ME!"
74
- ]
3
+ require 'discordrb'
75
4
 
76
- bot = Discordrb::Bot.new token: options.api_key
77
- bot.message() do |event|
78
- puts "Message recieved: #{event.message}"
79
- if "#{event.message}".include? "#{bot.bot_user.id}"
80
- response = responses.sample
81
- event.respond(response)
82
- puts "Responded with #{response}"
83
- end
5
+ class Bobby
6
+ def initialize(options)
7
+ @queue = []
8
+ @last_message_time = 0
9
+ @cooldown = 0.5
10
+ @discord_token = options.api_key
11
+ @responses = File.readlines(options.responses_file)
12
+ end
13
+
14
+ def start
15
+ start_queue
16
+ start_bot
17
+ end
18
+
19
+ def start_bot
20
+ bot = Discordrb::Bot.new token: @discord_token
21
+
22
+ bot.message do |event|
23
+ @queue.unshift(event) if event.message.to_s.include? bot.bot_user.id.to_s
84
24
  end
25
+
85
26
  bot.run
86
27
  end
28
+
29
+ def send_newest_message
30
+ response = @responses.sample
31
+ event = @queue.pop
32
+ event.respond(response)
33
+ puts "Responded with #{response}"
34
+ end
35
+
36
+ def start_queue
37
+ Thread.new do
38
+ puts 'Message queue started'
39
+ loop do
40
+ sleep 0.1
41
+ now = Time.now.to_f
42
+ next unless !@queue.empty? && now - @last_message_time >= @cooldown
43
+
44
+ send_newest_message
45
+ @last_message_time = now
46
+ end
47
+ end
48
+ end
87
49
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bobby-b
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Kruhlmann
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-16 00:00:00.000000000 Z
11
+ date: 2020-07-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
- email: kruhlmann@protonmail.com
14
+ email: andreas@kruhlmann.dev
15
15
  executables:
16
16
  - bobby-b
17
17
  extensions: []
@@ -23,7 +23,7 @@ homepage: https://github.com/Kruhlmann/bobby-b
23
23
  licenses:
24
24
  - GPL-3.0-or-later
25
25
  metadata: {}
26
- post_install_message:
26
+ post_install_message:
27
27
  rdoc_options: []
28
28
  require_paths:
29
29
  - lib
@@ -38,8 +38,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  requirements: []
41
- rubygems_version: 3.1.2
42
- signing_key:
41
+ rubygems_version: 3.1.3
42
+ signing_key:
43
43
  specification_version: 4
44
44
  summary: Bobby B bot replacement
45
45
  test_files: []