diff --git a/modules/sc.go b/modules/sc.go
deleted file mode 100644
index 8424ca6..0000000
--- a/modules/sc.go
+++ /dev/null
@@ -1,207 +0,0 @@
-// vi:ts=4:sts=4:sw=4:noet:tw=72
-
-package modules
-
-import (
- "encoding/json"
- "flag"
- "fmt"
- "html"
- "io/ioutil"
- "net/http"
- "net/url"
- "regexp"
- "strings"
- "time"
-
- "git.dnix.de/an/flokati/util"
- "git.dnix.de/an/xlog"
-)
-
-const (
- API_URL = "https://robertsspaceindustries.com/api"
- API_METHOD = "/stats/getCrowdfundStats"
- QUERY_CIT_URL = "https://robertsspaceindustries.com/citizens/"
- QUERY_ORG_URL = "https://robertsspaceindustries.com/orgs/"
- RE_CIT_NAME = `
\s*
\s*(.*)\s*
\s*
`
- RE_CIT_RECORD = `
\s*UEE Citizen Record\s*#(.*)`
- RE_CIT_HANDLE = `
\s*Handle name\s*(.*)\s*
`
- RE_CIT_ORG = `
(.*)`
- RE_CIT_SID = `Spectrum Identification \(SID\)\s*
([A-Z0-9]*)`
- RE_CIT_RANK = `Organization rank\s*
(.*)`
- RE_ORG_NAME = `
(.*) ?/ ?`
- RE_ORG_COUNT = `(.*) member`
- RE_ORG_MODEL = `(.*)`
- RE_ORG_FOCUS = `\s*- \s*\s*\s*
\s*- \s*\s*\s*
\s*
`
- RE_ORG_COMM = `(.*)`
- FANS_INT = 1000
- FLEET_INT = 1000
- FUNDS_INT = 50000
-)
-
-var (
- fans = 0
- fleet = 0
- funds = 0
- targetChannel = flag.String("sc_target_channel", "", "Default channel for stats output")
-)
-
-func init() {
- MsgFuncs["sc"] = scHandleMessage
- RunFuncs["sc"] = scScrapeLoop
-}
-
-func scHandleMessage(m *Message) {
- tok := strings.Split(m.Text, " ")
- if len(tok) < 1 {
- return
- }
- switch tok[0] {
- case "!scstats":
- showScStats(m.Channel)
- case "!sccit":
- if len(tok) > 1 {
- showCitizen(tok[1], m.Channel)
- }
- case "!scorg":
- if len(tok) > 1 {
- showOrganization(tok[1], m.Channel)
- }
- default:
- }
-}
-
-func scScrapeLoop() {
- for {
- scScraper()
- time.Sleep(1 * time.Minute)
- }
-}
-
-func scScraper() {
- var data interface{}
-
- xlog.Info("Scraping SC stats")
- resp, err := http.PostForm(API_URL+API_METHOD,
- url.Values{"fans": {"true"}, "fleet": {"true"}, "funds": {"true"}})
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- err = json.Unmarshal(body, &data)
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- stats := data.(map[string]interface{})["data"].(map[string]interface{})
- //fmt.Println(stats["fans"].(type))
- curFans := util.ToInt(stats["fans"])
- curFleet := util.ToInt(stats["fleet"])
- curFunds := util.ToInt(stats["funds"]) / 100
-
- nextFans := ((fans / FANS_INT) * FANS_INT) + FANS_INT
- nextFleet := ((fleet / FLEET_INT) * FLEET_INT) + FLEET_INT
- nextFunds := ((funds / FUNDS_INT) * FUNDS_INT) + FUNDS_INT
-
- if curFans >= nextFans {
- SayCh <- *targetChannel + "\n[SC] Star Citizens: " + util.NumberToString(curFans, '.')
- }
- if curFleet >= nextFleet {
- SayCh <- *targetChannel + "\n[SC] The UEE Fleet: " + util.NumberToString(curFleet, '.')
- }
- if curFunds >= nextFunds {
- SayCh <- *targetChannel + "\n[SC] Funds raised: " + util.NumberToString(curFunds, '.')
- }
-
- fans = curFans
- fleet = curFleet
- funds = curFunds
-}
-
-func showScStats(channel string) {
- SayCh <- channel + "\n**SC User and Funding Stats**"
- SayCh <- fmt.Sprintf("%s\nFans: %s", channel, util.NumberToString(fans, '.'))
- SayCh <- fmt.Sprintf("%s\nFleet: %s", channel, util.NumberToString(fleet, '.'))
- SayCh <- fmt.Sprintf("%s*\nFunds: $ %s", channel, util.NumberToString(funds, '.'))
-}
-
-func showCitizen(handle, channel string) {
- resp, err := http.Get(QUERY_CIT_URL + handle)
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- reName := regexp.MustCompile(RE_CIT_NAME)
- reRecord := regexp.MustCompile(RE_CIT_RECORD)
- reHandle := regexp.MustCompile(RE_CIT_HANDLE)
- reOrg := regexp.MustCompile(RE_CIT_ORG)
- reSid := regexp.MustCompile(RE_CIT_SID)
- reRank := regexp.MustCompile(RE_CIT_RANK)
- name := reName.FindStringSubmatch(string(body))
- record := reRecord.FindStringSubmatch(string(body))
- handle_ := reHandle.FindStringSubmatch(string(body))
- org := reOrg.FindStringSubmatch(string(body))
- sid := reSid.FindStringSubmatch(string(body))
- rank := reRank.FindStringSubmatch(string(body))
- if len(name) > 1 {
- SayCh <- channel + "\n**Citizen Info**"
- SayCh <- channel + "\nName: " + html.UnescapeString(string(name[1])) + " [" + string(handle_[1]) + "]"
- SayCh <- channel + "\nURL: " + QUERY_CIT_URL + string(handle_[1])
- SayCh <- channel + "\nUEE #: " + string(record[1])
- if len(org) > 1 {
- SayCh <- channel + "\nOrganization: " + html.UnescapeString(string(org[1])) + " [" + string(sid[1]) + "]"
- SayCh <- channel + "\nRank: " + html.UnescapeString(string(rank[1]))
- } else {
- SayCh <- channel + "\nOrganization: "
- }
- } else {
- SayCh <- channel + "\n***No Such Citizen***"
- }
-}
-
-func showOrganization(handle, channel string) {
- resp, err := http.Get(QUERY_ORG_URL + handle)
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- xlog.Info("Error: %v", err)
- return
- }
- reName := regexp.MustCompile(RE_ORG_NAME)
- reCount := regexp.MustCompile(RE_ORG_COUNT)
- reModel := regexp.MustCompile(RE_ORG_MODEL)
- reFocus := regexp.MustCompile(RE_ORG_FOCUS)
- reComm := regexp.MustCompile(RE_ORG_COMM)
- name := reName.FindStringSubmatch(string(body))
- count := reCount.FindStringSubmatch(string(body))
- model := reModel.FindStringSubmatch(string(body))
- focus := reFocus.FindStringSubmatch(string(body))
- comm := reComm.FindStringSubmatch(string(body))
- if len(name) > 1 {
- SayCh <- channel + "\n**Organization Info**"
- SayCh <- channel + "\nName: " + string(name[1]) + " [" + strings.ToUpper(handle) + "]"
- SayCh <- channel + "\nURL: " + QUERY_ORG_URL + strings.ToUpper(handle)
- SayCh <- channel + "\nMembers: " + string(count[1])
- SayCh <- channel + "\nModel: " + string(model[1])
- SayCh <- channel + "\nCommitment: " + string(comm[1])
- SayCh <- channel + "\nFocus: " + string(focus[1]) + ", " + string(focus[2])
- } else {
- SayCh <- channel + "\n***No Such Organization***"
- }
-}