summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.envrcbin287 -> 361 bytes
-rw-r--r--Makefile5
-rw-r--r--butler/butler.py91
-rw-r--r--butler/config.json46
4 files changed, 142 insertions, 0 deletions
diff --git a/.envrc b/.envrc
index 5234f06..e495c83 100644
--- a/.envrc
+++ b/.envrc
Binary files differ
diff --git a/Makefile b/Makefile
index 21024bc..01be4ac 100644
--- a/Makefile
+++ b/Makefile
@@ -10,4 +10,9 @@ dumps: FORCE
s3cmd -c dumps/.s3config sync ${LIGA_S3_BUCKET} dumps/sync/
./dumps/load-dumps.sh
+butler: dumps
+ python butler/butler.py 1+2 | mysql ${LIGA_MYSQL_CONNECTION_OPTS}
+ python butler/butler.py 1 | mysql ${LIGA_MYSQL_CONNECTION_OPTS}
+ python butler/butler.py 2 | mysql ${LIGA_MYSQL_CONNECTION_OPTS}
+
FORCE:
diff --git a/butler/butler.py b/butler/butler.py
new file mode 100644
index 0000000..36022e0
--- /dev/null
+++ b/butler/butler.py
@@ -0,0 +1,91 @@
+from __future__ import print_function
+import json, os, sys
+
+config = json.load(open(os.path.join(
+ os.path.dirname(__file__),
+ 'config.json')))
+
+butler_set = sys.argv[1]
+
+if butler_set not in config:
+ sys.exit()
+
+groups = config.get('__groups', {})
+queries = config.get('__queries', {})
+
+config = config[butler_set]
+
+TABL_STEP = 8
+TEAM_STEP = 16
+PLAYER_STEP = 400
+
+tabl_offset = 0
+team_offset = 0
+player_offset = 0
+
+for s_db in config['source']:
+ print('USE %s;' % (s_db))
+ for table in ['matches', 'players', 'scores', 'teams', 'segments']:
+ print('DROP TABLE IF EXISTS _%s;' % (table))
+ print('CREATE TABLE _%s AS SELECT * FROM %s;' % (table, table))
+ if s_db in queries:
+ for q in queries[s_db]:
+ print(q)
+ print(
+ 'UPDATE _matches SET tabl=tabl+%d, homet=homet+%d, visit=visit+%d;' % (
+ tabl_offset, team_offset, team_offset)
+ )
+ print(
+ 'UPDATE _players SET id=id+%d, team=team+%d;' % (
+ player_offset, team_offset)
+ )
+ print (
+ 'UPDATE _scores SET tabl=tabl+%d;' % (
+ tabl_offset)
+ )
+ print (
+ 'UPDATE _teams SET id=id+%d;' % (
+ team_offset)
+ )
+ print(
+ '''UPDATE _segments SET tabl=tabl+%d, homet=homet+%d, visit=visit+%d,
+ openN=openN+%d, openE=openE+%d, openS=openS+%d, openW=openW+%d,
+ closeN=closeN+%d, closeE=closeE+%d, closeS=closeS+%d, closeW=closeW+%d;''' % (
+ tabl_offset, team_offset, team_offset,
+ player_offset, player_offset, player_offset, player_offset,
+ player_offset, player_offset, player_offset, player_offset)
+ )
+ tabl_offset += TABL_STEP
+ team_offset += TEAM_STEP
+ player_offset += PLAYER_STEP
+
+print('USE %s;' % (config['output']))
+
+print('UPDATE admin SET teamcnt=%d, butler=%d;' % (
+ 16*len(config['source']), 4*len(config['source'])
+))
+
+print('UPDATE teams SET bye=2;')
+
+print('DELETE FROM butler;')
+
+for table in ['boards', 'rounds']:
+ print('DELETE FROM %s;' % (table))
+ print('INSERT INTO %s SELECT * FROM %s.%s;' % (
+ table, config['source'][0], table))
+
+for table in ['matches', 'players', 'scores', 'segments']:
+ print('DELETE FROM %s;' % (table))
+ for s_db in config['source']:
+ print('INSERT INTO %s SELECT * FROM %s._%s;' % (
+ table, s_db, table))
+
+print('DELETE FROM teams;')
+for idx, s_db in enumerate(config['source']):
+ print("INSERT INTO teams (id,fullname,shortname,grupa,bye) SELECT id,fullname,CONCAT('%s: ',shortname),%d,bye FROM %s._teams;" % (
+ groups[s_db], idx+1, s_db))
+
+print('UPDATE admin SET rnd=%d, segm=%d;' % (
+ int(os.environ.get('LIGA_BUTLER_FINISHED_ROUND', 0)),
+ int(os.environ.get('LIGA_BUTLER_FINISHED_SEGMENT', 0))
+))
diff --git a/butler/config.json b/butler/config.json
new file mode 100644
index 0000000..eea10ba
--- /dev/null
+++ b/butler/config.json
@@ -0,0 +1,46 @@
+{
+ "1+2": {
+ "source": [
+ "dmp202021_1s",
+ "dmp202021_2se",
+ "dmp202021_2sw",
+ "dmp202021_2ne",
+ "dmp202021_2nw"
+ ],
+ "output": "dmp202021_b_0"
+ },
+ "1": {
+ "source": [
+ "dmp202021_1s"
+ ],
+ "output": "dmp202021_b_1"
+ },
+ "2": {
+ "source": [
+ "dmp202021_2sw",
+ "dmp202021_2ne",
+ "dmp202021_2nw",
+ "dmp202021_2se"
+ ],
+ "output": "dmp202021_b_2"
+ },
+ "__groups": {
+ "dmp202021_e": "E",
+ "dmp202021_1s": "S",
+ "dmp202021_1n": "N",
+ "dmp202021_2se": "SE",
+ "dmp202021_2sw": "SW",
+ "dmp202021_2ne": "NE",
+ "dmp202021_2nw": "NW"
+ },
+ "__queries": {
+ "dmp202021_2se": [
+ "INSERT INTO _teams(id, bye) VALUES(15, 2),(16, 2);",
+ "INSERT INTO _matches(rnd, tabl, homet, visit, mtitle) SELECT rnd, 8, 15, 16, '--' FROM rounds WHERE rnd < 14;",
+ "INSERT INTO _matches(rnd, tabl, homet, visit, mtitle) SELECT 14, id, id, id+8, '--' FROM teams WHERE id < 9;",
+ "INSERT INTO _matches(rnd, tabl, homet, visit, mtitle) SELECT 15, id, id, id+8, '--' FROM teams WHERE id < 9;",
+ "INSERT INTO _segments(rnd, segment, tabl, homet, visit, towel) SELECT rnd, 1, 8, 15, 16, 1 FROM rounds;",
+ "INSERT INTO _segments(rnd, segment, tabl, homet, visit, towel) SELECT rnd, 2, 8, 15, 16, 1 FROM rounds;"
+ ]
+ }
+}