prismarb 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.
- checksums.yaml +7 -0
- data/lib/prismarb.rb +73 -0
- metadata +43 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 8fd3f2163766324557b77ddcfed23815f186de72dd8844232dfdd57107e44d43
|
|
4
|
+
data.tar.gz: b7e93dd1707810cdc6a42022b384cd86cd2ad5446fcfea556549afbd1bc67014
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c6721e39e40ba8c0fd70e6968ad40427ee02d80f9739419dac5a2ce4d3437725a8de55d91642ce70ff422a754d6460e14092b1d8c2d73fca389f982ee1e0feac
|
|
7
|
+
data.tar.gz: 66e2e947caf75fce055b429dba508c88123dcd6b83b5034583a2a52f368a42f583d661bd6a24bb0e65719c90c24896f5ab81ecdf43c6e8b589af525698d4b4e7
|
data/lib/prismarb.rb
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require "prismarb/version"
|
|
2
|
+
require 'net/http'
|
|
3
|
+
require 'uri'
|
|
4
|
+
module Prismarb
|
|
5
|
+
class Error < StandardError; end
|
|
6
|
+
|
|
7
|
+
class Prismalytics
|
|
8
|
+
|
|
9
|
+
def initialize(key)
|
|
10
|
+
@key = key
|
|
11
|
+
@commands = {}
|
|
12
|
+
@servers = []
|
|
13
|
+
@time = nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def process_data(message, server)
|
|
17
|
+
message = message.content.split(" ")[0]
|
|
18
|
+
if @commands.has_key? message
|
|
19
|
+
self.commands[message] += 1
|
|
20
|
+
else
|
|
21
|
+
self.commands[message] = 1
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
match = @servers.find { |i| i["name"] == server.name)
|
|
25
|
+
|
|
26
|
+
if match.nil?
|
|
27
|
+
new_server = {
|
|
28
|
+
"name": server.name,
|
|
29
|
+
"member_count": server.member_count,
|
|
30
|
+
"region": server.region,
|
|
31
|
+
"bot_messages": 1
|
|
32
|
+
}
|
|
33
|
+
@servers << new_server
|
|
34
|
+
else
|
|
35
|
+
match["bot_messages"] += 1
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def send(message)
|
|
40
|
+
"""
|
|
41
|
+
processes data and sends every 2 minutes
|
|
42
|
+
TODO: refactor so that users don't need to use ctx
|
|
43
|
+
"""
|
|
44
|
+
unset = False
|
|
45
|
+
if @time.nil?
|
|
46
|
+
@time = Time.now
|
|
47
|
+
unset = True
|
|
48
|
+
end
|
|
49
|
+
server = message.guild
|
|
50
|
+
self.process_data(message, server)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
curr_time = Time.now
|
|
54
|
+
interval = (curr_time - @time) / 60
|
|
55
|
+
if (unset or interval > 5)
|
|
56
|
+
@time = curr_time
|
|
57
|
+
data = {
|
|
58
|
+
"commands": self.commands,
|
|
59
|
+
"save_server": self.save_server,
|
|
60
|
+
"servers": self.servers
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
Net::HTTP.post URI('https://prismalytics.herokuapp.com/send_data')
|
|
64
|
+
data.to_json,
|
|
65
|
+
"key": @key
|
|
66
|
+
|
|
67
|
+
# reinitialize stored data as it has been sent
|
|
68
|
+
@commands = {}
|
|
69
|
+
@servers = []
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: prismarb
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: '1.0'
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Uzay-G
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2020-05-19 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Wrapper for the Prismalytics API
|
|
14
|
+
email: uzgirit@gmail.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/prismarb.rb
|
|
20
|
+
homepage: https://rubygems.org/gems/prismarb
|
|
21
|
+
licenses:
|
|
22
|
+
- MIT
|
|
23
|
+
metadata: {}
|
|
24
|
+
post_install_message:
|
|
25
|
+
rdoc_options: []
|
|
26
|
+
require_paths:
|
|
27
|
+
- lib
|
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
34
|
+
requirements:
|
|
35
|
+
- - ">="
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
requirements: []
|
|
39
|
+
rubygems_version: 3.0.3
|
|
40
|
+
signing_key:
|
|
41
|
+
specification_version: 4
|
|
42
|
+
summary: Wrapper for the Prismalytics API
|
|
43
|
+
test_files: []
|