DrTrigon has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/104315


Change subject: migrate; adopt DB config and SQL queries, create needed user 
DBs on demand
......................................................................

migrate; adopt DB config and SQL queries, create needed user DBs on demand

Change-Id: I5d511b02fef2c0976706dfab8686a6ba090e4f06
---
M public_html/cgi-bin/sum_cat_disc.py
1 file changed, 36 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/bots/drtrigonbot 
refs/changes/15/104315/1

diff --git a/public_html/cgi-bin/sum_cat_disc.py 
b/public_html/cgi-bin/sum_cat_disc.py
index 94522d5..79ba434 100755
--- a/public_html/cgi-bin/sum_cat_disc.py
+++ b/public_html/cgi-bin/sum_cat_disc.py
@@ -186,8 +186,9 @@
 
 """SELECT VERSION();""", ]
 
-# https://wiki.toolserver.org/view/Database_access#wiki
-_SQL_query_wiki_info = \
+if style.host(os.environ) == 'ts':
+    # https://wiki.toolserver.org/view/Database_access#wiki
+    _SQL_query_wiki_info = \
 """SELECT 
    lang,
    CONCAT("sql-s", server) AS dbserver,
@@ -196,6 +197,20 @@
  FROM toolserver.wiki
  WHERE family = "wikipedia"
  ORDER BY SIZE DESC LIMIT %s;"""
+else:
+    # 
https://wikitech.wikimedia.org/wiki/Nova_Resource:Tools/Help#Metadata_database
+    _SQL_query_wiki_info = \
+"""SELECT
+   lang,
+   slice,
+   dbname,
+   url
+ FROM meta_p.wiki
+ WHERE family = "wikipedia"
+ ORDER BY SIZE DESC LIMIT %s;"""
+
+_SQL_create_database = \
+"""CREATE DATABASE IF NOT EXISTS %s"""
 
 
 # === variables === === ===
@@ -205,6 +220,16 @@
 wikitime    = "%Y%m%d%H%M%S"
 
 asctime_fmt = "%a %b %d %H:%M:%S %Y"
+
+cnf_file    = os.path.join(bot_path, "../.my.cnf")
+
+db_name     = db_conf[0]
+if style.host(os.environ) == 'labs':
+    import ConfigParser
+    config = ConfigParser.RawConfigParser()
+    config.read(cnf_file)
+    user_name = config.get('client', 'user').replace("'", "")
+    db_name   = '%s__%s' % (user_name, db_name)
 
 
 # === code === === ===
@@ -311,7 +336,7 @@
 
 def get_wikiinfo_db(wiki, limit=SQL_LIMIT_max):
        for item in read_db(_SQL_query_wiki_info, (limit,), limit):
-               if item[2] == (wiki + "wiki_p"):
+               if item[0] == wiki:
                        return item
        return None
 
@@ -416,11 +441,18 @@
 
 site = pywikibot.getSite(wiki)
 
+# check existence of user database (for temporary table to join with)
+db = MySQLdb.connect(host=wiki+db_conf[1], read_default_file=cnf_file)
+cursor = db.cursor()
+call_db(_SQL_create_database % db_name)
+cursor.close()
+db.close()
+
 # Establich a connection
 #db = MySQLdb.connect(db='enwiki_p', host="enwiki-p.rrdb.toolserver.org", 
read_default_file="/home/drtrigon/.my.cnf")
 #db = MySQLdb.connect(db=wiki+'wiki_p', 
host=wiki+"wiki-p.rrdb.toolserver.org", 
read_default_file="/home/drtrigon/.my.cnf")
 #db = MySQLdb.connect(db='u_drtrigon', 
host=wiki+"wiki-p.userdb.toolserver.org", 
read_default_file="/home/drtrigon/.my.cnf")
-db = MySQLdb.connect(db=db_conf[0], host=wiki+db_conf[1], 
read_default_file=os.path.join(bot_path, "../.my.cnf"))
+db = MySQLdb.connect(db=db_name, host=wiki+db_conf[1], 
read_default_file=cnf_file)
 # prepare a cursor object using cursor() method
 cursor = db.cursor()
 

-- 
To view, visit https://gerrit.wikimedia.org/r/104315
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5d511b02fef2c0976706dfab8686a6ba090e4f06
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/bots/drtrigonbot
Gerrit-Branch: master
Gerrit-Owner: DrTrigon <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to