python 으로 XE mysql 쿼리로 자동 게시물 등록하기
자동 게시물 등록을 위해 열심히 구글링 해봤지만 XE의 BlogAPI 밖에 나오지 않았다.
일주일동안 삽질해서 연구했지만 blogapi는 생각보다 잘 되지 않는듯 ... xmlrpc 구조도 잘 모르겠고 ..
페이지를 리버싱해서 post방식으로 시도해봤지만 마찬가지로 실패 ..
그래서 직접 mysql에 게시물을 때려박는 방법을 시도했고, 어설프지만 고생 끝에 성공 했다.
사전 준비)
1. 해당 게시판의 고급 설정에서 정렬 방법을 문서 번호가 아닌 등록일, 내림차순으로 설정한다.
이번 예제에서 등록한 게시물은 문서 번호가 꼬여버리게 된다 ..
2. xe_documents 테이블의 document_srl에서 auto increment 설정을 해준다.
3. 기존 게시판 myslq db 확인 후 게시판 module_srl와 유저 member_srl 아이디를 확인하자
[ 입력 코드 ]
#!/usr/bin/python
# -*- coding: utf-8 -*-
import urllib2
import MySQLdb as mdb
from time import localtime, strftime
db_addr = '[ 접속 주소=]'
db_user = '[db아이디]'
db_password = '[db비밀번호]'
db_name = '[db이름]'
dbname = "[db이름]"
board_id = "[게시판번호]"
member_srl = "[관리자 멤버 아이디]"
con = mdb.connect(db_addr, db_user, db_password, db_name)
with con:
cTime = strftime("%Y%m%d%H%M%S", localtime())
title = "제목"
text = "내용"
sql ="INSERT INTO `"+dbname+"`.`xe_documents` (`document_srl`, `module_srl`, `category_srl`, `lang_code`, `is_notice`, `title`, `title_bold`, `title_color`, `content`, `readed_count`, `voted_count`, `blamed_count`, `comment_count`, `trackback_count`, `uploaded_count`, `password`, `user_id`, `user_name`, `nick_name`, `member_srl`, `email_address`, `homepage`, `tags`, `extra_vars`, `regdate`, `last_update`, `last_updater`, `ipaddress`, `list_order`, `update_order`, `allow_trackback`, `notify_message`, `status`, `comment_status`) VALUES ('', '"+board_id+"', '0', '', 'N', '"+title+".', 'N', NULL, '"+text+".', '0', '0', '0', '0', '0', '0', NULL, NULL, '', '', '', '', '', NULL, NULL, '"+cTime+"', '"+cTime+"', NULL, '', '', '', 'Y', 'N', 'PUBLIC', 'ALLOW');"
cur = con.cursor(mdb.cursors.DictCursor)
cur.execute(sql)