phpBB3导入用户的Python脚本

关联的数据表

在phpBB3中导入用户时, 需要处理的有两张表, 一个是 users, 一个是 user_group.

如果是新安装的论坛, 在每次导入之前, 用以下语句初始化:

DELETE FROM phpbb_users WHERE user_id > 47;
alter table phpbb_users  auto_increment = 48;

DELETE FROM phpbb_user_group where user_id > 48;
DELETE FROM phpbb_user_group where user_id = 0;

需要的最小数据集

对于users表

需要的最小字段为 `user_type`, `group_id`, `user_permissions`, `user_ip`, `user_regdate`, `username`, `username_clean`, `user_lastvisit`, `user_lastmark`, `user_posts`, `user_lang`, `user_timezone`, `user_dateformat`, `user_style`, `user_sig`, `user_occ`, `user_interests`

如果是新安装的论坛, 进需要对这些字段动态赋值: `user_ip`, `user_regdate`, `username`, `username_clean`, `user_lastvisit`, `user_lastmark`, `user_posts`, `user_sig`

对于user_group表

每一个user添加默认注册用户对应的组记录, 对于新安装的论坛, 添加一条对应组2的记录

Python脚本

print("\n" + ‘######## Start:‘ + str(i) + ‘, limit:‘ + str(limit) + ‘ ########‘)
users = tb_user_all.find().sort(‘registeredAt‘, 1).limit(limit).skip(i)
for user in users:
    try:
        with rbcommon.mysqlclient.cursor() as cursor:
            if (user[‘nick‘] == ‘User Not Found‘):
                sql = ‘INSERT IGNORE INTO `phpbb_users` (`user_type`, `group_id`, `user_permissions`, `user_ip`, `user_regdate`, `username`, ‘                       ‘`username_clean`, `user_lastvisit`, `user_lastmark`, `user_posts`, `user_lang`, `user_timezone`, ‘                       ‘`user_dateformat`, `user_style`, `user_sig`, `user_occ`, `user_interests`) ‘                       ‘VALUES (0, 2, \‘\‘, %s, %s, %s, %s, %s, %s, %s, \‘en\‘, 8.00, \‘|Y-m-d| G:i\‘, 1, %s, \‘\‘, \‘\‘)‘
                cursor.execute(sql, (
                    user[‘ip‘],
                    user[‘registeredAt‘],
                    user[‘name‘].strip(),
                    user[‘_id‘].strip(),
                    user[‘registeredAt‘],
                    user[‘registeredAt‘],
                    user[‘posts‘],
                    ‘‘ if (not ‘signature‘ in user) else user[‘signature‘]))
            else:
                lastVisit = 0
                if (user[‘lastLogin‘] == ‘‘):
                    lastVisit = 0
                else:
                    lastVisit = int(time.mktime(time.strptime(user[‘lastLogin‘], ‘%a %b %d %H:%M:%S %Y‘)))

                if (lastVisit == 0) and (len(user[‘lastActive‘]) > 0):
                    lastVisit = int(time.mktime(time.strptime(user[‘lastActive‘], ‘%a %b %d %H:%M:%S %Y‘)))

                sql = ‘INSERT IGNORE INTO `phpbb_users` (`user_type`, `group_id`, `user_permissions`, `user_ip`, `user_regdate`, `username`, ‘                       ‘`username_clean`, `user_lastvisit`, `user_lastmark`, `user_posts`, `user_lang`, `user_timezone`, ‘                       ‘`user_dateformat`, `user_style`, `user_sig`, `user_occ`, `user_interests`) ‘                       ‘VALUES (0, 2, \‘\‘, %s, %s, %s, %s, %s, %s, %s, \‘en\‘, 8.00, \‘|Y-m-d| G:i\‘, 1, %s, \‘\‘, \‘\‘)‘
                cursor.execute(sql, (
                    user[‘ip‘],
                    user[‘registeredAt‘],
                    user[‘name‘].strip(),
                    user[‘_id‘].strip(),
                    lastVisit,
                    lastVisit,
                    user[‘posts‘],
                    ‘‘ if (not ‘signature‘ in user) else user[‘signature‘]))

            # phpbb_user_group
            lastId = cursor.lastrowid
            if (lastId == 0):
                print(‘Duplicate ID:>{}<‘.format(user[‘name‘]))
                rbcommon.mysqlclient.rollback()
                continue
            print(lastId)

            sql = ‘INSERT IGNORE INTO `phpbb_user_group` (`group_id`, `user_id`, `group_leader`, `user_pending`) ‘                   ‘VALUES (2, %s, 0, 0)‘
            cursor.execute(sql, (lastId))

            rbcommon.mysqlclient.commit()
    except Exception as e:
        print(json.dumps(user))
        traceback.print_exc()

.

导入结束后, 需要在后台首页, 重置全站的文章和用户统计数字.

.

原文地址:https://www.cnblogs.com/milton/p/10261522.html

时间: 2024-10-05 04:52:54

phpBB3导入用户的Python脚本的相关文章

phpBB3导入帖子的Python脚本

关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 topics, 一个是 posts.为了方便与原数据关联, 需要在这两个表上新增一个字段并建立唯一索引 ALTER TABLE `topics` ADD COLUMN `ori_id` VARCHAR(32) NOT NULL DEFAULT '' AFTER `poll_vote_change`; ALTER TABLE `posts` ADD COLUMN `ori_id` VARCHAR(32) NOT NULL D

为Discuz! X3.2批量添加用户的python脚本

为Discuz! X3.2批量添加用户的python脚本 搭建了一个Discuz! X3.2环境用于工作,需要添加用户时没有找到合适的工具,虽然同事最终用按键精灵解决了问题,不过还是决定写一段代码留下来,也许用得上. 之所以是Python而不是PHP,只是最近在接触Python,发现在这种场合更加方便. 添加用户代码: # encoding: utf-8 ''' Created on 2015年7月1日 @author: ZhongPing ''' import urllib import ur

phpBB3.0.X导入版面的Python脚本

关联的数据表 在phpBB3.0中导入版面时, 需要处理的有两张表, 一个是 forums, 一个是 acl_groups. 如果是干净的论坛, 可以不保留安装时填入的默认分区和版面, 直接用以下语句初始化: -- 清空 forums 表 TRUNCATE phpbb_forums; -- 清空 acl_groups 表 TRUNCATE phpbb3015.phpbb_acl_groups; -- 填入初始化权限 INSERT INTO `phpbb_acl_groups` VALUES (1

用户登陆python脚本

用户登陆,用已知的user和passwd登陆,先判断用户是否合法,然后输入密码,判断密码是否正确,如果输入三次错误密码,则自动跳出.否则输出用户error #!/usr/bin/pythonimport getpass#coding=utf-8user = "root"passwd = "westos"username = raw_input("please input the username:")if username == user:  

批量修改AD用户属性python脚本

主要是用python调用dsquery查询到dn,再用python调用dsmod进行dn的属性修改. namelist.txt格式如下,部门的字段其实可以换成相应想修改的AD属性,比如AD中title是表示职位,想要修改工号-职务,就将dsmod语句改成如下(具体dsmod user的参数查 dsmod user /?可以看到.) "dsmod user " + dn + " -title " + dep |---------------| |sAMAccount,

在Jenkins的Python脚本中模拟用户输入

这个需求很少见,但是好不容易试验成功了,所以要记录下来备忘. 我们使用Jenkins+TexturePacker进行资源的自动打包和转换. TexturePacker首次运行需要在命令行中输入agree进行版权声明的用户确认.而Jenkins的系统环境是独立于桌面系统的,所以在Jenkins里面要再一次输入agree.于是就有了一个非常恶心的情况,Jenkins里面运行TexturePacker命令行没有给用户输入agree的地方. 幸好有万能的python脚本.它可以模拟用户的输入.这样只需要

用 Python 脚本实现对 Linux 服务器的监控

hon 分享到:8 原文出处: 曹江华 目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控. 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写. Python 版本说明 Python 是由 Guido va

利用pyinstaller将python脚本打包发布

之前写了一个小工具,将excel配置表转换为json.xml.lua等配置文件.最近在学习egret,正好需要转换配置文件,刚好就用上了.然而当我想把工具拷到工作目录时,就发愁了.之前我为了方便扩展,把程序拆分得太细: [email protected]:~/Documents/code/github/py_exceltools$ ls -lh 总用量 80K drwxrwxr-x 2 xzc xzc 4.0K 7月 27 23:03 bin drwxrwxr-x 2 xzc xzc 4.0K

使用Python脚本强化LLDB调试器

LLDB是Xcode自带的调试器,作为一个iOS应用开发程序员,平时我在开发应用时会使用LLDB来调试代码.在逆向应用时,也会用到LLDB来跟踪应用的执行过程. LLDB还内置了一个Python解析器,使用Python脚本可以方便LLDB的调试,比如自动化执行一些命令,或者自动化处理数据之类的,具体说明可以参考官方的文档:LLDB Python Reference. 以下就以一个具体的例子来演示一个Python脚本的编写过程: 一.获取方法的偏移地址 运行系统自带的计算器Calculator.a