add LICENSE and README.md, cron now inserts all versions and all special servers into the database

This commit is contained in:
Dawid Wysokiński 2020-08-24 12:38:52 +02:00 committed by Kichiyaki
parent 56146c989c
commit a052ed8575
5 changed files with 69 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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

2
go.mod
View File

@ -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

2
go.sum
View File

@ -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=