Skip to content

Instantly share code, notes, and snippets.

@u2386
Created March 24, 2015 00:36
Show Gist options
  • Save u2386/a8299b4d37d99ba9c5e3 to your computer and use it in GitHub Desktop.
Save u2386/a8299b4d37d99ba9c5e3 to your computer and use it in GitHub Desktop.
Update web WD-ENG collection CourseCategory database.
# coding:utf-8
import datetime
import os
from pymongo import MongoClient
def insert_node(post_to, name, code, level, parent, describe=""):
"""
post a node
:param post_to: collection
:param name: unit name
:param code: the unit code
:param level: the course level
:param parent:
:param describe:
:return:
"""
if is_exists(posts.find({"level": level}), code):
print "{0} exists.".format(name)
else:
post = {"_class": "com.whut.spring.model.mongo.CourseCategory",
"level": level,
"author": "caowang",
"parent": parent,
"nameCn": name,
"code": code,
"describe": describe,
"picId": "544cf5bde2adeb2dfad96dbd",
"date": datetime.datetime.now(),
}
print "({0}) Insert: {1} {2}".format(post["date"], code, name)
return post_to.insert(post)
def find_parent(psts, pc):
for p in psts:
if p["code"] == pc:
return p["_id"]
def is_exists(psts, code):
return False
if __name__ == '__main__':
client = MongoClient('z3510.oicp.net', 54984)
db = client['whutenglish']
posts = db.CourseCategory
course_level = "seniorENG"
nameCn = "高中英语"
level_code = "226"
root_info = {"_class": "com.whut.spring.model.mongo.CourseCategory",
"author": "caowang",
"level": course_level,
"parent": "1",
"nameCn": nameCn,
"code": level_code,
"describe": "root",
"picId": "544cf5bde2adeb2dfad96dbd",
"date": datetime.datetime.now(),
}
insert_node(posts, nameCn, level_code, course_level, root_info['parent'], describe="root")
f = open(r'F:\Projects\ENG\GetCategory\ENG_Category\seniorENG.txt').readlines()
for line in f:
lesson_code, lesson_name = tuple(line.strip().split(',', 1))
if is_exists(posts.find({"level": course_level}), lesson_code):
print "{0} exists.".format(lesson_name)
else:
try:
if len(lesson_code) == 3:
parent_id = insert_node(posts, lesson_name, lesson_code, course_level, root_info["code"])
if len(lesson_code) == 9:
_ = insert_node(posts, lesson_name, lesson_code, course_level, parent_id)
except TypeError, e:
print e, lesson_name
for path, folders, files in os.walk(r'F:\Projects\ENG\ID\seniorENG'):
if files:
os.chdir(path)
for fl in files:
f = open(fl).readlines()
for line in f:
lesson_code, lesson_name = tuple(line.strip().split(',', 1))
if is_exists(posts.find({"level": course_level}), lesson_code):
print "{0} exists.".format(lesson_name)
else:
try:
if len(lesson_code) == 12:
parent_id = find_parent(posts.find({"level": course_level}), lesson_code[: -3])
parent_id = insert_node(posts, lesson_name, lesson_code, course_level, parent_id)
if len(lesson_code) == 15:
_ = insert_node(posts, lesson_name, lesson_code, course_level, parent_id, describe="{{EC}}")
else:
continue
except TypeError, e:
print e, lesson_code, lesson_name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment