From a052ed85757801c0cc48e5790ecfbd5ab56785fb Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Mon, 24 Aug 2020 12:38:52 +0200 Subject: [PATCH] add LICENSE and README.md, cron now inserts all versions and all special servers into the database --- README.md | 31 ++++++++++++++++++++++++++----- cron/handler.go | 2 ++ cron/sql_statements.go | 38 ++++++++++++++++++++++++++++++++++++++ go.mod | 2 +- go.sum | 2 ++ 5 files changed, 69 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7aea9a9..2c851d7 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,32 @@ # tribalwarshelp.com cron -Required env variables: +Features: + +- Adds automatically new TribalWars servers. +- Fetches TribalWars servers data (players, tribes, ODA, ODD, ODS, OD, conquers, configs). +- Saves daily player/tribe stats, player/tribe history, tribe changes, player name changes, server stats. +- Vacuums the database daily from old player/tribe stats, player/tribe history. + +## Development + +**Required env variables to run this cron** (you can set them directly in your system or create .env.development file): ``` -DB_USER=postgres -DB_NAME=tw +DB_USER=your_db_user +DB_NAME=your_db_name DB_PORT=5432 -DB_HOST=localhost -DB_PASSWORD=test123T +DB_HOST=your_db_host +DB_PASSWORD=your_db_pass ``` + +### Prerequisites + +1. Golang +2. PostgreSQL database + +### Installing + +1. Clone this repo. +2. Navigate to the directory where you have cloned this repo. +3. Set required env variables directly in your system or create .env.development file. +4. go run main.go diff --git a/cron/handler.go b/cron/handler.go index 48f1496..9703846 100644 --- a/cron/handler.go +++ b/cron/handler.go @@ -85,6 +85,8 @@ func (h *handler) init() error { for _, statement := range []string{ pgDefaultValues, + allVersionsPGInsertStatements, + allSpecialServersPGInsertStatements, } { if _, err := tx.Exec(statement); err != nil { return err diff --git a/cron/sql_statements.go b/cron/sql_statements.go index ca08e11..f78ab38 100644 --- a/cron/sql_statements.go +++ b/cron/sql_statements.go @@ -1,6 +1,44 @@ package cron const ( + allSpecialServersPGInsertStatements = ` + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('pl', 'pls1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('en', 'ens1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('uk', 'uks1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('it', 'its1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('hu', 'hus1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('fr', 'frs1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('us', 'uss1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('nl', 'nls1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('es', 'ess1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('ro', 'ros1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('gr', 'grs1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('br', 'brs1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('tr', 'trs1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('cs', 'css1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('de', 'des1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('ru', 'rus1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + INSERT INTO public.special_servers (lang_version_tag, key) VALUES ('ch', 'chs1') ON CONFLICT ON CONSTRAINT special_servers_lang_version_tag_key_key DO NOTHING; + ` + allVersionsPGInsertStatements = ` + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('pl', 'Polska', 'plemiona.pl', 'Europe/Warsaw') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('de', 'Deutschland', 'die-staemme.de', 'Europe/Berlin') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('uk', 'United Kingdom', 'tribalwars.co.uk', 'Europe/London') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('hu', 'Hungary', 'klanhaboru.hu', 'Europe/Budapest') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('it', 'Italy', 'tribals.it', 'Europe/Rome') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('fr', 'France', 'guerretribale.fr', 'Europe/Paris') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('us', 'United States', 'tribalwars.us', 'America/Washington') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('nl', 'The Netherlands', 'tribalwars.nl', 'Europe/Amsterdam') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('es', 'Spain', 'guerrastribales.es', 'Europe/Madrid') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('ro', 'Romania', 'triburile.ro', 'Europe/Bucharest') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('gr', 'Greece', 'fyletikesmaxes.gr', 'Europe/Athens') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('br', 'Brazil', 'tribalwars.com.br', 'America/Sao_Paulo') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('tr', 'Turkey', 'klanlar.org', 'Europe/Instanbul') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('cs', 'Czech Republic', 'divokekmeny.cz', 'Europe/Prague') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('en', 'Germany', 'tribalwars.net', 'Europe/London') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('ru', 'Russia', 'voyna-plemyon.ru', 'Europe/Moscow') ON CONFLICT (tag) DO NOTHING; + INSERT INTO public.lang_versions (tag, name, host, timezone) VALUES ('ch', 'Switerzland', 'staemme.ch', 'Europe/Zurich') ON CONFLICT (tag) DO NOTHING; + ` serverPGFunctions = ` CREATE OR REPLACE FUNCTION ?0.log_tribe_change_on_insert() RETURNS trigger AS diff --git a/go.mod b/go.mod index 7863fb3..17523c7 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 github.com/segmentio/encoding v0.1.14 // indirect - github.com/tribalwarshelp/shared v0.0.0-20200728103702-87e7e5f1b8fd + github.com/tribalwarshelp/shared v0.0.0-20200824102353-ef15dea9c1a3 golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 // indirect diff --git a/go.sum b/go.sum index 18bf0c9..c6e1169 100644 --- a/go.sum +++ b/go.sum @@ -109,6 +109,8 @@ github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYm github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= github.com/tribalwarshelp/shared v0.0.0-20200728103702-87e7e5f1b8fd h1:AHGZw26jj2uPgFRPLRouFjJJV97Y/p9zLgSW79ZdcVk= github.com/tribalwarshelp/shared v0.0.0-20200728103702-87e7e5f1b8fd/go.mod h1:SSWchTkQdgeIDr0C68C7zopEIcBLCUa8Ic2CHenUaac= +github.com/tribalwarshelp/shared v0.0.0-20200824102353-ef15dea9c1a3 h1:KNH15DdQLxZAahSfX+4U4KUhsqRWj7uxjuOkxxhrQZk= +github.com/tribalwarshelp/shared v0.0.0-20200824102353-ef15dea9c1a3/go.mod h1:SSWchTkQdgeIDr0C68C7zopEIcBLCUa8Ic2CHenUaac= github.com/vmihailenco/bufpool v0.1.5/go.mod h1:fL9i/PRTuS7AELqAHwSU1Zf1c70xhkhGe/cD5ud9pJk= github.com/vmihailenco/bufpool v0.1.11 h1:gOq2WmBrq0i2yW5QJ16ykccQ4wH9UyEsgLm6czKAd94= github.com/vmihailenco/bufpool v0.1.11/go.mod h1:AFf/MOy3l2CFTKbxwt0mp2MwnqjNEs5H/UxrkA5jxTQ=