X-Git-Url: https://git.toastfreeware.priv.at/philipp/winterrodeln/wrpylib.git/blobdiff_plain/65a93c0cd3c4e50bee9f77a0300c6415e05c3365..7a6bf9a10f2acfb69f5e01038a4dcd1d02504b43:/wrpylib/mwdb.py?ds=sidebyside diff --git a/wrpylib/mwdb.py b/wrpylib/mwdb.py index 6858c27..106bea4 100644 --- a/wrpylib/mwdb.py +++ b/wrpylib/mwdb.py @@ -1,8 +1,8 @@ -#!/usr/bin/python2.6 +#!/usr/bin/python2.7 # -*- coding: iso-8859-15 -*- # $Id$ # $HeadURL$ -"""This module contains code to make tha access of MediaWiki tables +"""This module contains code to make the access of MediaWiki tables easy. The module uses sqlalchemy to access the database. """ from sqlalchemy import Table, Column, types @@ -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), - 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_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), ) @@ -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_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_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), @@ -52,8 +52,30 @@ def text_table(metadata): """ 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), - 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), )