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()
.
导入结束后, 需要在后台首页, 重置全站的文章和用户统计数字.
.
phpBB3导入用户的Python脚本的更多相关文章
- phpBB3导入帖子的Python脚本
关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 topics, 一个是 posts.为了方便与原数据关联, 需要在这两个表上新增一个字段并建立唯一索引 ALTER TABLE ...
- phpBB3导入版面的Python脚本
关联的数据表 在phpBB3中导入版面时, 需要处理的有两张表, 一个是 forums, 一个是 acl_groups. 如果是干净的论坛, 可以不保留安装时填入的默认分区和版面, 直接用以下语句初始 ...
- zabbix3.4用Python脚本Excel批量导入主机
1.安装xlrd读取Excel文件 1.1. 下载setuptools-38.2.4.zip,上传至zabbix服务器解压安装,下载地址:https://pypi.python.org/package ...
- 普通用户在命令终端使用Python脚本连入校园网
普通用户在命令终端使用Python脚本连入校园网 想要连入校园网的步骤: 浏览器输入对应的IP地址,输入账号密码连网: 下载对应软件,输入账号密码连网: 而面对没有界面的服务器,而你又没有root权限 ...
- ArcGIS使用Python脚本工具
在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用.在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了.这里用按要素裁剪栅格的Python来 ...
- 用 Python 脚本实现对 Linux 服务器的监控
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...
- 使用Python脚本强化LLDB调试器
LLDB是Xcode自带的调试器,作为一个iOS应用开发程序员,平时我在开发应用时会使用LLDB来调试代码.在逆向应用时,也会用到LLDB来跟踪应用的执行过程. LLDB还内置了一个Python解析器 ...
- 利用pyinstaller将python脚本打包发布
之前写了一个小工具,将excel配置表转换为json.xml.lua等配置文件.最近在学习egret,正好需要转换配置文件,刚好就用上了.然而当我想把工具拷到工作目录时,就发愁了.之前我为了方便扩展, ...
- python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...
随机推荐
- Python “No module named” 以及在Python2中可以导入,但在python3中却出现的原因
Python “No module named” 以及在Python2中可以导入,但在python3中却出现的原因 原因之1: 例如有这样的一个包和它的模块: Test __init__.py Mod ...
- Idea中快捷键与小技巧的总结-->持续更新
1.Scala类或单例对象中快速声明实例对象: eg. new SparkContext(conf).var 系统会自动提示,可以自动补全,如图: 2.ctrl+i与ctrl+o的区别: ctrl + ...
- MLR:利用多元线性回归法,从大量数据中提取五个因变量来预测一个自变量—Jason niu
from numpy import genfromtxt from sklearn import linear_model datapath=r"Delivery_Dummy.csv&quo ...
- 给力的移动 FZU - 2287
你的弟弟给你安排了一个任务,他给了你1到N个数字的乱序排列,现在你想给你的弟弟秀一波操作,操作最少的次数把序列变成1到N的顺序排列,每次操作你可以选择序列中的一个数字并把它移动到序列的头部或尾部. I ...
- P1993 小K的农场
P1993 小K的农场比较裸的差分约束,只是我判负环的时候sb了... 有负环意味着无解 #include<iostream> #include<cstdio> #includ ...
- 20个命令行工具监控 Linux 系统性能【转载】
对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作.我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行.为此,我们编写了对于 L ...
- ISP PIPLINE(零) 知识综述预热
本文为camera isp pipline概述 ISP,即image signal processing.为图像成型做的处理工作.适应不同光学环境下图像的还原. pipline流程如下: 光通过LEN ...
- Android 简历 怎么写? 月薪10K,20K+, 怎么拿到面试?
估计不少找Android工作的,技术还可以,就是投简历,没有面试通知.很有可能是简历的问题. 那么我这里有一些简历,可以参考. 其中也有我的, 月薪20K+的哦, 参考一下,会有你的面试的. 额, ...
- iis和tomcat同时运行,完美解决80端口冲突问题
背景:一台vps服务器上需要同时运行两个网站,节(老)省(板)成(扣)本,用一个服务器.一个是已经建好的官网(iis管理一键安装的PHP网站),另一个是java 项目网站(jeecg框架修改的商城项目 ...
- Yahoo Programming Contest 2019.E.Odd Subrectangles(思路 线性基)
题目链接 \(Description\) 给定一个\(n\times m\)的\(01\)矩阵.求任意选出\(r\)行.\(c\)列(共\(2^{n+m}\)种方案),使得这\(r\)行\(c\)列的 ...