Created function to translate between sledrun title names and urls.
[philipp/winterrodeln/wrpylib.git] / wrpylib / mwdb.py
index 7e7da44cfc65b18666601ff4ab9e2135397c4a5f..01f38451c5a28b1cf1e1b600314b3a1e4ff60728 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.6
+#!/usr/bin/python3.4
 # -*- coding: iso-8859-15 -*-
 # $Id$
 # $HeadURL$
 # -*- coding: iso-8859-15 -*-
 # $Id$
 # $HeadURL$
@@ -15,13 +15,13 @@ def page_table(metadata):
     return Table("page", metadata,
     Column("page_id", types.Integer, primary_key=True),
     Column("page_namespace", types.Integer, nullable=False),
     return Table("page", metadata,
     Column("page_id", types.Integer, primary_key=True),
     Column("page_namespace", types.Integer, nullable=False),
-    Column("page_title", types.Unicode(255), nullable=False),
-    Column("page_restrictions", types.Unicode, nullable=False),
+    Column("page_title", types.Unicode(255), nullable=False), # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+    Column("page_restrictions", types.String, nullable=False), # tinyblob NOT NULL
     Column("page_counter", types.Integer, nullable=False),
     Column("page_is_redirect", types.Integer, nullable=False),
     Column("page_is_new", types.Integer, nullable=False),
     Column("page_random", types.Float, nullable=False),
     Column("page_counter", types.Integer, nullable=False),
     Column("page_is_redirect", types.Integer, nullable=False),
     Column("page_is_new", types.Integer, nullable=False),
     Column("page_random", types.Float, nullable=False),
-    Column("page_touched", types.Unicode(14), nullable=False),
+    Column("page_touched", types.String(14, convert_unicode='force'), nullable=False), # binary(14) NOT NULL
     Column("page_latest", types.Integer, nullable=False),
     Column("page_len", types.Integer, nullable=False),
     )
     Column("page_latest", types.Integer, nullable=False),
     Column("page_len", types.Integer, nullable=False),
     )
@@ -35,10 +35,10 @@ def revision_table(metadata):
     Column("rev_id", types.Integer, nullable=False, primary_key=True),
     Column("rev_page", types.Integer, nullable=False, primary_key=True),
     Column("rev_text_id", types.Integer, nullable=False),
     Column("rev_id", types.Integer, nullable=False, primary_key=True),
     Column("rev_page", types.Integer, nullable=False, primary_key=True),
     Column("rev_text_id", types.Integer, nullable=False),
-    Column("rev_comment", types.Unicode),
+    Column("rev_comment", types.String(convert_unicode='force'), nullable=False), # tinyblob NOT NULL
     Column("rev_user", types.Integer, nullable=False),
     Column("rev_user", types.Integer, nullable=False),
-    Column("rev_user_text", types.Unicode(255), nullable=False),
-    Column("rev_timestamp", types.Unicode(14), nullable=False),
+    Column("rev_user_text", types.Unicode(255), nullable=False), # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+    Column("rev_timestamp", types.String(14, convert_unicode='force'), nullable=False), # binary(14) NOT NULL
     Column("rev_minor_edit", types.Integer, nullable=False),
     Column("rev_deleted", types.Integer, nullable=False),
     Column("rev_len", types.Integer, nullable=False),
     Column("rev_minor_edit", types.Integer, nullable=False),
     Column("rev_deleted", types.Integer, nullable=False),
     Column("rev_len", types.Integer, nullable=False),
@@ -52,8 +52,30 @@ def text_table(metadata):
     """
     return Table("text", metadata,
     Column("old_id", types.Integer, primary_key=True),
     """
     return Table("text", metadata,
     Column("old_id", types.Integer, primary_key=True),
-    Column("old_text", types.Unicode),
-    Column("old_flags", types.Unicode),
+    Column("old_text", types.String(convert_unicode='force')), # mediumblob NOT NULL
+    Column("old_flags", types.String(convert_unicode='force')), # tinyblob NOT NULL
+    )
+
+
+def user_table(metadata):
+    """Returns the sqlalchemy Table representing the "user" table in MediaWiki.
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table('user', metadata,
+    Column("user_id", types.Integer, primary_key=True),
+    Column("user_name", types.Unicode(255), nullable=False), # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+    Column("user_real_name", types.Unicode(255), nullable=False), # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+    # "user_password"
+    # "user_newpassword"
+    # "user_newpass_time"
+    Column("user_email", types.Unicode, nullable=False), # tinytext NOT NULL
+    # "user_touched"
+    # "user_token"
+    # "user_email_authenticated"
+    # "user_email_token"
+    # "user_email_token_expires"
+    # "user_registration"
+    # "user_editcount"
     )
 
 
     )
 
 
@@ -63,8 +85,8 @@ def categorylinks_table(metadata):
     """
     return Table("categorylinks", metadata,
     Column("cl_from", types.Integer, nullable=False, primary_key=True),
     """
     return Table("categorylinks", metadata,
     Column("cl_from", types.Integer, nullable=False, primary_key=True),
-    Column("cl_to", types.Unicode(255), nullable=False, primary_key=True),
-    Column("cl_sortkey", types.Unicode, nullable=False),
+    Column("cl_to", types.Unicode(255), nullable=False, primary_key=True), # varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+    Column("cl_sortkey", types.String(convert_unicode='force'), nullable=False), # varbinary(230) NOT NULL
     Column("cl_timestamp", types.DateTime, nullable=False),
     )
 
     Column("cl_timestamp", types.DateTime, nullable=False),
     )