diff options
| author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2014-08-08 16:46:49 +0800 |
|---|---|---|
| committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2014-08-08 16:46:49 +0800 |
| commit | ca4f5541bc8d888bf0a06506da1ccd84a617dec3 (patch) | |
| tree | 235f9297f88469cf5f5771097dc528b63eed3774 | |
| parent | 535b7b6b16c0cb13d9fb254d0690dc02c874869b (diff) | |
| download | pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.tar pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.tar.gz pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.tar.bz2 pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.tar.lz pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.tar.xz pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.tar.zst pttbbs-ca4f5541bc8d888bf0a06506da1ccd84a617dec3.zip | |
Change comments from tuple to dict.
Also support 'remote import' by command line.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@6052 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
| -rwxr-xr-x | pttbbs/daemon/postd/postd.py | 4 | ||||
| -rw-r--r-- | pttbbs/daemon/postd/rebuild.c | 20 | ||||
| -rwxr-xr-x | pttbbs/util/pyutil/pttpost.py | 14 |
3 files changed, 22 insertions, 16 deletions
diff --git a/pttbbs/daemon/postd/postd.py b/pttbbs/daemon/postd/postd.py index 3f328c2b..2fb85264 100755 --- a/pttbbs/daemon/postd/postd.py +++ b/pttbbs/daemon/postd/postd.py @@ -90,7 +90,9 @@ def GetPostContent(keypak): comment_num = int(g_db.get(key + ':comment') or '0') for i in range(comment_num): comment = deserialize(g_db.get('%s:comment#%08d' % (key, i + 1))) - content += '<%s> %s: %s %s\n' % tuple(map(big5.encode, comment)) + # Sorry, output is big5. + comment = {k: big5.encode(v) for k,v in comment.items()} + content += '<%(kind)s> %(author)s: %(content)s %(trailing)s\n' % comment return content def SavePostComment(keypak, comment): diff --git a/pttbbs/daemon/postd/rebuild.c b/pttbbs/daemon/postd/rebuild.c index 3efc1d21..40279b58 100644 --- a/pttbbs/daemon/postd/rebuild.c +++ b/pttbbs/daemon/postd/rebuild.c @@ -2,7 +2,7 @@ #include "bbs.h" #include "daemons.h" -const char *server_addr = POSTD_ADDR; +const char *server = POSTD_ADDR; int PostAddRecord(const char *board, const fileheader_t *fhdr, const char *fpath) { @@ -54,7 +54,7 @@ int PostAddRecord(const char *board, const fileheader_t *fhdr, const char *fpath strlcpy(req.extra.userid, userid, sizeof(req.extra.userid)); printf(" (userref: %s.%d)", req.extra.userid, req.extra.userref); - s = toconnectex(server_addr, 10); + s = toconnectex(server, 10); if (s < 0) return 1; if (success && towrite(s, &req, sizeof(req)) < 0) @@ -123,17 +123,21 @@ void rebuild_board(int bid GCC_UNUSED, boardheader_t *bp, int is_remote) fclose(fp); } -int main(int argc, char **argv) +int main(int argc, const char **argv) { int bid = 0; - int is_remote = (server_addr[0] != ':'); - - if (is_remote) { - printf(" *** Serving content to remote host: %s\n", server_addr); + const char *prog = argv[0]; + int is_remote = 0; + + if (argc > 1 && strchr(argv[1], ':')) { + server = argv[1]; + is_remote = (server[0] != ':'); + printf("Changed server to%s: %s\n", is_remote ? " REMOTE": "", server); + argc--, argv++; } if (argc < 2) { - printf("usage: %s boardname ...\n", argv[0]); + printf("usage: %s [host:port<5135>] boardname ...\n", prog); return 1; } diff --git a/pttbbs/util/pyutil/pttpost.py b/pttbbs/util/pyutil/pttpost.py index d52b8400..2773503b 100755 --- a/pttbbs/util/pyutil/pttpost.py +++ b/pttbbs/util/pyutil/pttpost.py @@ -41,17 +41,17 @@ def ParseComment(buf): """Parses a buffer for known comment formats. Returns: - (kind, author, content, trailing) + Dict in (kind, author, content, trailing), or None on failure. """ - invalid = (None, None, None, None) match = re.findall(CommentsFormatRe, buf) if len(match) < 1: - return invalid + return None match = match[0] (kind, author, content, trailing) = match - return map(big5.decode, (str(CommentsPrefixes.index(kind) + 1), - author, content.rstrip(' '), - trailing.rstrip('\n'))) + return dict(zip(('kind', 'author', 'content', 'trailing'), + map(big5.decode, (str(CommentsPrefixes.index(kind) + 1), + author, content.rstrip(' '), + trailing.rstrip('\n'))))) def ParsePost(contents): '''Returns a legacy post into two parts. @@ -92,7 +92,7 @@ def ParsePost(contents): contents.pop(-1) continue result = ParseComment(contents[-1]) - if result[0] is None: + if result is None: break comments.insert(0, result) contents.pop(-1) |
