asdhji
This commit is contained in:
commit
b837512329
15 changed files with 233 additions and 0 deletions
0
config.yml
Normal file
0
config.yml
Normal file
30
shard.lock
Normal file
30
shard.lock
Normal file
|
@ -0,0 +1,30 @@
|
|||
version: 2.0
|
||||
shards:
|
||||
backtracer:
|
||||
git: https://github.com/sija/backtracer.cr.git
|
||||
version: 1.2.2
|
||||
|
||||
db:
|
||||
git: https://github.com/crystal-lang/crystal-db.git
|
||||
version: 0.13.1
|
||||
|
||||
exception_page:
|
||||
git: https://github.com/crystal-loot/exception_page.git
|
||||
version: 0.4.1
|
||||
|
||||
kemal:
|
||||
git: https://github.com/kemalcr/kemal.git
|
||||
version: 1.5.0
|
||||
|
||||
radix:
|
||||
git: https://github.com/luislavena/radix.git
|
||||
version: 0.4.1
|
||||
|
||||
redis:
|
||||
git: https://github.com/jgaskins/redis.git
|
||||
version: 0.9.0
|
||||
|
||||
sqlite3:
|
||||
git: https://github.com/crystal-lang/crystal-sqlite3.git
|
||||
version: 0.21.0
|
||||
|
21
shard.yml
Normal file
21
shard.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: vanity-tester-backend
|
||||
version: 0.1.0
|
||||
|
||||
authors:
|
||||
- Fijxu <fijxu@nadeko.net>
|
||||
|
||||
targets:
|
||||
vanity-tester-backend:
|
||||
main: src/vanity-tester-backend.cr
|
||||
|
||||
dependencies:
|
||||
kemal:
|
||||
github: kemalcr/kemal
|
||||
sqlite3:
|
||||
github: crystal-lang/crystal-sqlite3
|
||||
redis:
|
||||
github: jgaskins/redis
|
||||
|
||||
crystal: ">= 1.13.1"
|
||||
|
||||
license: MIT
|
2
spec/spec_helper.cr
Normal file
2
spec/spec_helper.cr
Normal file
|
@ -0,0 +1,2 @@
|
|||
require "spec"
|
||||
require "../src/vanity-tester-backend"
|
9
spec/vanity-tester-backend_spec.cr
Normal file
9
spec/vanity-tester-backend_spec.cr
Normal file
|
@ -0,0 +1,9 @@
|
|||
require "./spec_helper"
|
||||
|
||||
describe Vanity::Tester::Backend do
|
||||
# TODO: Write tests
|
||||
|
||||
it "works" do
|
||||
false.should eq(true)
|
||||
end
|
||||
end
|
17
src/config.cr
Normal file
17
src/config.cr
Normal file
|
@ -0,0 +1,17 @@
|
|||
require "yaml"
|
||||
|
||||
class Config
|
||||
include YAML::Serializable
|
||||
|
||||
property port : Int32 = 8090
|
||||
property db : String = "./db.sqlite3"
|
||||
property dbTableName : String = "files"
|
||||
property redisUrl : String = "127.0.0.1:6379"
|
||||
|
||||
def self.load
|
||||
config_file = "./config.yml"
|
||||
config_yaml = File.read(config_file)
|
||||
config = Config.from_yaml(config_yaml)
|
||||
config
|
||||
end
|
||||
end
|
30
src/handling.cr
Normal file
30
src/handling.cr
Normal file
|
@ -0,0 +1,30 @@
|
|||
require "wait_group"
|
||||
|
||||
macro xd(ident)
|
||||
Providers::{{ident}}.get_badges
|
||||
end
|
||||
|
||||
module Handlers
|
||||
extend self
|
||||
|
||||
@@channel = Channel(JSON::Any).new
|
||||
@@erm = [] of JSON::Any | Nil
|
||||
@@buhh = ["bttv", "chatty"]
|
||||
|
||||
def buh
|
||||
@@buhh.each do |iden|
|
||||
spawn do
|
||||
@@erm << Test.test(iden)
|
||||
# chatterino_badges = Providers::Chatterino.get_badges
|
||||
# chatty_badges = Providers::Chatty.get_badges
|
||||
# ffz_badges = Providers::FFZ.get_badges
|
||||
# dankchat_badges = Providers::DankChat.get_badges
|
||||
end
|
||||
end
|
||||
pp @@erm
|
||||
end
|
||||
|
||||
def parse_badges(env)
|
||||
buh
|
||||
end
|
||||
end
|
3
src/providers/7tv.cr
Normal file
3
src/providers/7tv.cr
Normal file
|
@ -0,0 +1,3 @@
|
|||
module Providers::SevenTV
|
||||
|
||||
end
|
8
src/providers/bttv.cr
Normal file
8
src/providers/bttv.cr
Normal file
|
@ -0,0 +1,8 @@
|
|||
module Providers::BTTV
|
||||
extend self
|
||||
|
||||
def get_badges
|
||||
res = HTTP::Client.get("https://api.betterttv.net/3/cached/badges/twitch", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
end
|
||||
end
|
8
src/providers/chatterino.cr
Normal file
8
src/providers/chatterino.cr
Normal file
|
@ -0,0 +1,8 @@
|
|||
module Providers::Chatterino
|
||||
extend self
|
||||
|
||||
def get_badges
|
||||
res = HTTP::Client.get("https://api.chatterino.com/badges", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
end
|
||||
end
|
8
src/providers/chatty.cr
Normal file
8
src/providers/chatty.cr
Normal file
|
@ -0,0 +1,8 @@
|
|||
module Providers::Chatty
|
||||
extend self
|
||||
|
||||
def get_badges
|
||||
res = HTTP::Client.get("https://tduva.com/res/badges", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
end
|
||||
end
|
9
src/providers/dankChat.cr
Normal file
9
src/providers/dankChat.cr
Normal file
|
@ -0,0 +1,9 @@
|
|||
# const removedBadges = ['DankChat Top Supporter'];
|
||||
module Providers::DankChat
|
||||
extend self
|
||||
|
||||
def get_badges
|
||||
res = HTTP::Client.get("https://flxrs.com/api/badges", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
end
|
||||
end
|
52
src/providers/frankerFazeZ.cr
Normal file
52
src/providers/frankerFazeZ.cr
Normal file
|
@ -0,0 +1,52 @@
|
|||
# export async function getBadges() {
|
||||
# const getBadges = await fetch(`${window.cors}https://api.frankerfacez.com/v1/badges/ids`);
|
||||
# return await getBadges.json();
|
||||
# }
|
||||
|
||||
# export async function getChannel(channelID) {
|
||||
# try {
|
||||
# const getChannel = await fetch(`${window.cors}https://api.frankerfacez.com/v1/room/id/${channelID}`);
|
||||
# const channelData = (await getChannel.json()).room;
|
||||
|
||||
# let moderatorBadge = null;
|
||||
# if (channelData.moderator_badge) {
|
||||
# moderatorBadge = getLastValue(channelData.mod_urls);
|
||||
# }
|
||||
# let vipBadge = null;
|
||||
# if (channelData.vip_badge) {
|
||||
# vipBadge = getLastValue(channelData.vip_badge);
|
||||
# }
|
||||
|
||||
# return { moderatorBadge, vipBadge };
|
||||
# } catch {
|
||||
# return { moderatorBadge: null, vipBadge: null };
|
||||
# }
|
||||
# }
|
||||
|
||||
# export const fallback = {
|
||||
# badges: [],
|
||||
# users: {},
|
||||
# };
|
||||
|
||||
# export const customFallback = {
|
||||
# moderatorBadge: null,
|
||||
# vipBadge: null,
|
||||
# };
|
||||
|
||||
# function getLastValue(obj) {
|
||||
# return obj[Object.keys(obj)[Object.keys(obj).length - 1]];
|
||||
# }
|
||||
|
||||
module Providers::FFZ
|
||||
extend self
|
||||
|
||||
def get_badges
|
||||
res = HTTP::Client.get("https://api.frankerfacez.com/v1/badges/ids", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
end
|
||||
|
||||
# def get_channel(channel_id : String)
|
||||
# res = HTTP::Client.get("https://api.frankerfacez.com/v1/room/id/#{channel_id}", headers: HEADERS)
|
||||
# channel_data = JSON.parse(res.body)
|
||||
|
||||
end
|
12
src/providers/prov.cr
Normal file
12
src/providers/prov.cr
Normal file
|
@ -0,0 +1,12 @@
|
|||
module Test
|
||||
def self.test(exp)
|
||||
case exp
|
||||
when "bttv"
|
||||
res = HTTP::Client.get("https://api.betterttv.net/3/cached/badges/twitch", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
when "chatty"
|
||||
res = HTTP::Client.get("https://tduva.com/res/badges", headers: HEADERS)
|
||||
return JSON.parse(res.body)
|
||||
end
|
||||
end
|
||||
end
|
24
src/vanity-tester-backend.cr
Normal file
24
src/vanity-tester-backend.cr
Normal file
|
@ -0,0 +1,24 @@
|
|||
require "kemal"
|
||||
require "redis"
|
||||
require "sqlite3"
|
||||
require "db"
|
||||
require "http/client"
|
||||
|
||||
require "./config"
|
||||
require "./handling"
|
||||
require "./providers/**"
|
||||
|
||||
CONFIG = Config.load
|
||||
Kemal.config.port = CONFIG.port
|
||||
Kemal.config.shutdown_message = false
|
||||
Kemal.config.app_name = "vanity-tester-backend"
|
||||
SQL = DB.open("sqlite3://#{CONFIG.db}")
|
||||
REDIS_DB = Redis::Client.new(CONFIG.redisUrl)
|
||||
|
||||
HEADERS = HTTP::Headers{"User-Agent" => "Vanity-Tester-Backend/0.1.0"}
|
||||
|
||||
get "/badges" do |env|
|
||||
Handlers.parse_badges(env)
|
||||
end
|
||||
|
||||
Kemal.run
|
Loading…
Reference in a new issue