001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/contrib/phpbb2mvnforum/src/org/mvnforum/phpbb2mvnforum/Migrator.java,v 1.16 2007/01/15 10:27:35 dungbtm Exp $
003: * $Author: dungbtm $
004: * $Revision: 1.16 $
005: * $Date: 2007/01/15 10:27:35 $
006: *
007: * ====================================================================
008: *
009: * Copyright (C) 2002-2007 by MyVietnam.net
010: *
011: * All copyright notices regarding mvnForum MUST remain
012: * intact in the scripts and in the outputted HTML.
013: * The "powered by" text/logo with a link back to
014: * http://www.mvnForum.com and http://www.MyVietnam.net in
015: * the footer of the pages MUST remain visible when the pages
016: * are viewed on the internet or intranet.
017: *
018: * This program is free software; you can redistribute it and/or modify
019: * it under the terms of the GNU General Public License as published by
020: * the Free Software Foundation; either version 2 of the License, or
021: * any later version.
022: *
023: * This program is distributed in the hope that it will be useful,
024: * but WITHOUT ANY WARRANTY; without even the implied warranty of
025: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
026: * GNU General Public License for more details.
027: *
028: * You should have received a copy of the GNU General Public License
029: * along with this program; if not, write to the Free Software
030: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
031: *
032: * Support can be obtained from support forums at:
033: * http://www.mvnForum.com/mvnforum/index
034: *
035: * Correspondence and Marketing Questions can be sent to:
036: * info at MyVietnam net
037: *
038: * @author:
039: */
040: package org.mvnforum.phpbb2mvnforum;
041:
042: import java.io.PrintStream;
043: import java.sql.Date;
044: import java.sql.SQLException;
045: import java.sql.Timestamp;
046: import java.util.ArrayList;
047: import java.util.Collection;
048: import java.util.Iterator;
049:
050: import net.myvietnam.mvncore.exception.CreateException;
051: import net.myvietnam.mvncore.exception.DatabaseException;
052: import net.myvietnam.mvncore.exception.DuplicateKeyException;
053: import net.myvietnam.mvncore.exception.ForeignKeyNotFoundException;
054: import net.myvietnam.mvncore.exception.ObjectNotFoundException;
055:
056: import org.mvnforum.phpbb2mvnforum.db.CategoryBean;
057: import org.mvnforum.phpbb2mvnforum.db.CategoryDAO;
058: import org.mvnforum.phpbb2mvnforum.db.ForumBean;
059: import org.mvnforum.phpbb2mvnforum.db.ForumDAO;
060: import org.mvnforum.phpbb2mvnforum.db.MemberDAO;
061: import org.mvnforum.phpbb2mvnforum.db.MessageDAO;
062: import org.mvnforum.phpbb2mvnforum.db.PhpbbCategories;
063: import org.mvnforum.phpbb2mvnforum.db.PhpbbCategoriesDAO;
064: import org.mvnforum.phpbb2mvnforum.db.PhpbbForum;
065: import org.mvnforum.phpbb2mvnforum.db.PhpbbForumDAO;
066: import org.mvnforum.phpbb2mvnforum.db.PhpbbPost;
067: import org.mvnforum.phpbb2mvnforum.db.PhpbbPostDAO;
068: import org.mvnforum.phpbb2mvnforum.db.PhpbbPostText;
069: import org.mvnforum.phpbb2mvnforum.db.PhpbbPostTextDAO;
070: import org.mvnforum.phpbb2mvnforum.db.PhpbbPrivmMsgs;
071: import org.mvnforum.phpbb2mvnforum.db.PhpbbPrivmMsgsDAO;
072: import org.mvnforum.phpbb2mvnforum.db.PhpbbPrivmMsgsTextDAO;
073: import org.mvnforum.phpbb2mvnforum.db.PhpbbTopics;
074: import org.mvnforum.phpbb2mvnforum.db.PhpbbTopicsDAO;
075: import org.mvnforum.phpbb2mvnforum.db.PhpbbUserDAO;
076: import org.mvnforum.phpbb2mvnforum.db.PhpbbUsers;
077: import org.mvnforum.phpbb2mvnforum.db.PostBean;
078: import org.mvnforum.phpbb2mvnforum.db.PostDAO;
079: import org.mvnforum.phpbb2mvnforum.db.ThreadBean;
080: import org.mvnforum.phpbb2mvnforum.db.ThreadDAO;
081: import org.mvnforum.phpbb2mvnforum.db.jdbc.DAOFactory;
082: import org.mvnforum.util.MD5;
083: import org.mvnforum.util.Utils;
084:
085: //==============================================================================
086: // The JavaReference.com Software License, Version 1.0
087: // Copyright (c) 2002-2005 JavaReference.com. All rights reserved.
088: //
089: //
090: // Redistribution and use in source and binary forms, with or without
091: // modification, are permitted provided that the following conditions
092: // are met:
093: //
094: // 1. Redistributions of source code must retain the above copyright notice,
095: // this list of conditions and the following disclaimer.
096: //
097: // 2. Redistributions in binary form must reproduce the above copyright notice,
098: // this list of conditions and the following disclaimer in the documentation
099: // and/or other materials provided with the distribution.
100: //
101: // 3. The end-user documentation included with the redistribution, if any, must
102: // include the following acknowlegement:
103: //
104: // "This product includes software developed by the Javareference.com
105: // (http://www.javareference.com/)."
106: //
107: // Alternately, this acknowlegement may appear in the software itself, if and
108: // wherever such third-party acknowlegements normally appear.
109: //
110: // 4. The names "JavaReference" and "Javareference.com", must not be used to
111: // endorse or promote products derived from this software without prior written
112: // permission. For written permission, please contact webmaster@javareference.com.
113: //
114: // 5. Products derived from this software may not be called "Javareference" nor may
115: // "Javareference" appear in their names without prior written permission of
116: // Javareference.com.
117: //
118: // THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
119: // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
120: // FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
121: // JAVAREFERENCE.COM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
122: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
123: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
124: // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
125: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
126: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
127: // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
128: //
129: //================================================================================
130: // Software from this site consists of contributions made by various individuals
131: // on behalf of Javareference.com. For more information on Javareference.com,
132: // please see http://www.javareference.com
133: //================================================================================
134:
135: /**
136: * @author anandh
137: */
138: public class Migrator {
139:
140: private static DAOFactory factory = new DAOFactory();
141:
142: private static int PHPBB_ADMIN_ID = 2;
143:
144: private static int PHPBB_GUEST_ID = -1;
145:
146: private static int ADMIN_ID = 1;
147:
148: private static int GUEST_ID = 2;
149:
150: public static int correctMvnforumMemberID(int phpbbUserID) {
151: if (phpbbUserID == PHPBB_ADMIN_ID)
152: return ADMIN_ID;
153: else if (phpbbUserID == PHPBB_GUEST_ID)
154: return GUEST_ID;
155: return phpbbUserID;
156: }
157:
158: public static void migrateUsers(PrintStream ostream, int gender)
159: throws SQLException, ObjectNotFoundException,
160: DatabaseException, DuplicateKeyException, CreateException {
161:
162: PhpbbUserDAO phpbbUserDAO = factory.getPhpUserDAO();
163:
164: MemberDAO memberDAO = factory.getMemberDAO();
165:
166: Collection phpbbUserBeans = phpbbUserDAO.getBeans();
167:
168: int userCount = 0;
169:
170: for (Iterator iter = phpbbUserBeans.iterator(); iter.hasNext();) {
171: PhpbbUsers bean = (PhpbbUsers) iter.next();
172: int memberID = correctMvnforumMemberID(bean.getUserId());
173: String memberName = bean.getUsername();
174: if (memberName.equalsIgnoreCase("Anonymous")) {
175: memberName = "Guest";
176: }
177:
178: String memberPassword = bean.getUserPassword();
179: if (memberPassword.equals("")) {
180: memberPassword = "Guest";
181: } else {
182: memberPassword = Utils.wrapIt(MD5
183: .getBase64FromHEX(memberPassword));
184: }
185: String memberFirstEmail = Utils.wrapIt(bean.getUserEmail());
186: String memberEmail = memberFirstEmail;
187:
188: int memberEmailVisible = bean.getUserViewemail();
189: // Keep name invisible (no equivalent in phpbb)
190: int memberNameVisible = 0;
191: String memberFirstIP = "0.0.0.0";
192: String memberLastIP = "0.0.0.0";
193: int memberViewCount = 0;
194: int memberPostCount = bean.getUserPosts();
195: Timestamp memberCreationDate = Utils.getTimeStamp(bean
196: .getUserRegdate());
197: Timestamp memberModifiedDate = memberCreationDate;
198: Timestamp memberExpireDate = memberCreationDate;
199: Timestamp memberLastLogon = Utils.getTimeStamp(bean
200: .getUserLastvisit());
201: int memberOption = 0;
202: int memberStatus = 0;
203: String memberActivateCode = "";
204: String memberTempPassword = "";
205: int memberMessageCount = 0;
206: int memberMessageOption = 0;
207: int memberPostsPerPage = 10; //Default by mvnForum.
208: int memberWarnCount = 0;
209: int memberVoteCount = 0;
210: int memberVoteTotalStars = 0;
211: int memberRewardPoints = 0;
212: String memberTitle = "";
213:
214: double tzone = bean.getUserTimezone().doubleValue();
215:
216: String memberSignature = Utils.wrapIt(bean.getUserSig());
217: String memberAvatar = Utils.wrapIt(bean.getUserAvatar());
218: String memberSkin = "";
219: //replace default language
220:
221: //String memberLanguage = bean.getUserLang();
222: String memberLanguage = "en";
223:
224: //PHPBB does not store names
225: String memberFirstname = memberName;
226: //because mvnforum doesn't allow empty name
227: String memberLastname = "";
228:
229: //PHPBB does not store gender. This can be an issue. Everyone will be made a female
230: int memberGender = gender;
231: Date memberBirthday = new Date(0);
232: String memberAddress = bean.getUserFrom();
233: String memberCity = "";
234: String memberState = "";
235: String memberCountry = "";
236: String memberPhone = "";
237: String memberMobile = "";
238: String memberFax = "";
239: String memberCareer = Utils.wrapIt(bean.getUserOcc());
240: String memberHomepage = Utils.wrapIt(bean.getUserWebsite());
241: String memberYahoo = Utils.wrapIt(bean.getUserYim());
242: String memberAol = Utils.wrapIt(bean.getUserAim());
243: String memberIcq = "";
244: String memberMsn = Utils.wrapIt(bean.getUserMsnm());
245: // No interests collumn in MvnForum. We will just put the interests in CoolLink1 so that
246: // no data is lost.
247: String memberCoolLink1 = Utils.wrapIt(bean
248: .getUserInterests());
249: String memberCoolLink2 = "";
250:
251: if (memberName.equalsIgnoreCase("admin")) {
252: memberDAO.update(ADMIN_ID, memberName, memberPassword,
253: memberFirstEmail, memberEmail,
254: memberEmailVisible, memberNameVisible,
255: memberFirstIP, memberLastIP, memberViewCount,
256: memberPostCount, memberCreationDate,
257: memberModifiedDate, memberExpireDate,
258: memberLastLogon, memberOption, memberStatus,
259: memberActivateCode, memberTempPassword,
260: memberMessageCount, memberMessageOption,
261: memberPostsPerPage, memberWarnCount,
262: memberVoteCount, memberVoteTotalStars,
263: memberRewardPoints, memberTitle, tzone,
264: memberSignature, memberAvatar, memberSkin,
265: memberLanguage, memberFirstname,
266: memberLastname, memberGender, memberBirthday,
267: memberAddress, memberCity, memberState,
268: memberCountry, memberPhone, memberMobile,
269: memberFax, memberCareer, memberHomepage,
270: memberYahoo, memberAol, memberIcq, memberMsn,
271: memberCoolLink1, memberCoolLink2);
272: } else {
273: if (memberName.equalsIgnoreCase("Guest")) {
274: memberDAO
275: .create(GUEST_ID, memberName,
276: memberPassword, memberFirstEmail,
277: memberEmail, memberEmailVisible,
278: memberNameVisible, memberFirstIP,
279: memberLastIP, memberViewCount,
280: memberPostCount,
281: memberCreationDate,
282: memberModifiedDate,
283: memberExpireDate, memberLastLogon,
284: memberOption, memberStatus,
285: memberActivateCode,
286: memberTempPassword,
287: memberMessageCount,
288: memberMessageOption,
289: memberPostsPerPage,
290: memberWarnCount, memberVoteCount,
291: memberVoteTotalStars,
292: memberRewardPoints, memberTitle,
293: tzone, memberSignature,
294: memberAvatar, memberSkin,
295: memberLanguage, memberFirstname,
296: memberLastname, memberGender,
297: memberBirthday, memberAddress,
298: memberCity, memberState,
299: memberCountry, memberPhone,
300: memberMobile, memberFax,
301: memberCareer, memberHomepage,
302: memberYahoo, memberAol, memberIcq,
303: memberMsn, memberCoolLink1,
304: memberCoolLink2);
305: } else {
306: memberDAO
307: .create(memberID, memberName,
308: memberPassword, memberFirstEmail,
309: memberEmail, memberEmailVisible,
310: memberNameVisible, memberFirstIP,
311: memberLastIP, memberViewCount,
312: memberPostCount,
313: memberCreationDate,
314: memberModifiedDate,
315: memberExpireDate, memberLastLogon,
316: memberOption, memberStatus,
317: memberActivateCode,
318: memberTempPassword,
319: memberMessageCount,
320: memberMessageOption,
321: memberPostsPerPage,
322: memberWarnCount, memberVoteCount,
323: memberVoteTotalStars,
324: memberRewardPoints, memberTitle,
325: tzone, memberSignature,
326: memberAvatar, memberSkin,
327: memberLanguage, memberFirstname,
328: memberLastname, memberGender,
329: memberBirthday, memberAddress,
330: memberCity, memberState,
331: memberCountry, memberPhone,
332: memberMobile, memberFax,
333: memberCareer, memberHomepage,
334: memberYahoo, memberAol, memberIcq,
335: memberMsn, memberCoolLink1,
336: memberCoolLink2);
337: }
338:
339: }
340:
341: userCount++;
342: // System.out.println(userCount + " : " + memberName + " added!");
343:
344: }
345:
346: System.out.println(userCount);
347: }
348:
349: public static void migrateCategories(PrintStream ostream)
350: throws SQLException, DatabaseException, CreateException,
351: DuplicateKeyException, ForeignKeyNotFoundException {
352:
353: PhpbbCategoriesDAO phpbbCategoriesDAO = factory
354: .getPhpbbCategoriesDAO();
355:
356: CategoryDAO categoryDAO = factory.getCategoryDAO();
357:
358: CategoryDAO categoryDAOXML = factory.getCategoryDAOXML();
359:
360: Collection phpbbCategoriesBeans = phpbbCategoriesDAO.getBeans();
361: Collection categoryBeans = new ArrayList();
362:
363: int categoryCount = 0;
364:
365: for (Iterator iter = phpbbCategoriesBeans.iterator(); iter
366: .hasNext();) {
367:
368: PhpbbCategories phpbbCategories = (PhpbbCategories) iter
369: .next();
370: int catID = phpbbCategories.getCatId();
371: int parentCategoryID = 0;
372: String categoryName = phpbbCategories.getCatTitle();
373: String categoryDesc = "";
374: Timestamp categoryCreationDate = new Timestamp(0);
375: Timestamp categoryModifiedDate = categoryCreationDate;
376: int categoryOrder = phpbbCategories.getCatOrder();
377: int categoryOption = 0;
378: int categoryStatus = 0;
379:
380: CategoryBean bean = new CategoryBean();
381: bean.setCategoryID(catID);
382: bean.setParentCategoryID(parentCategoryID);
383: bean.setCategoryName(categoryName);
384: bean.setCategoryDesc(categoryDesc);
385: bean.setCategoryCreationDate(categoryCreationDate);
386: bean.setCategoryModifiedDate(categoryModifiedDate);
387: bean.setCategoryOrder(categoryOrder);
388: bean.setCategoryOption(categoryOption);
389: bean.setCategoryStatus(categoryStatus);
390:
391: // categoryBeans.add(bean);
392: categoryDAO.create(catID, parentCategoryID, categoryName,
393: categoryDesc, categoryCreationDate,
394: categoryModifiedDate, categoryOrder,
395: categoryOption, categoryStatus);
396:
397: categoryCount++;
398: // System.out.println(categoryCount + " : " + categoryName + " added!");
399: }
400:
401: // categoryDAOXML.createMultiple(categoryBeans);
402:
403: System.out.println(categoryCount);
404:
405: }
406:
407: public static void migrateForums(PrintStream ostream)
408: throws SQLException, DatabaseException,
409: ObjectNotFoundException, CreateException,
410: DuplicateKeyException, ForeignKeyNotFoundException {
411:
412: PhpbbForumDAO phpbbForumDAO = factory.getPhpbbForumDAO();
413: PhpbbPostDAO phpbbPostDAO = factory.getPhpbbPostDAO();
414: PhpbbUserDAO phpbbUserDAO = factory.getPhpUserDAO();
415:
416: ForumDAO forumDAO = factory.getForumDAO();
417:
418: ForumDAO forumDAOXML = factory.getForumDAOXML();
419: Collection phpbbForumBeans = phpbbForumDAO.getBeans();
420: Collection forumBeans = new ArrayList();
421:
422: int forumCount = 0;
423:
424: for (Iterator iter = phpbbForumBeans.iterator(); iter.hasNext();) {
425: PhpbbForum phpbbForum = (PhpbbForum) iter.next();
426: int forumID = phpbbForum.getforum_id();
427: int categoryID = phpbbForum.getcat_id();
428: int last_post_id = phpbbForum.getforum_last_post_id();
429: if (last_post_id == 0) {
430: continue;
431: }
432: String lastPostMemberName = "";
433: if (last_post_id == PHPBB_ADMIN_ID) {
434: lastPostMemberName = "Admin";
435: } else {
436: if (last_post_id == PHPBB_GUEST_ID) {
437: lastPostMemberName = "Guest";
438: } else {
439: lastPostMemberName = phpbbUserDAO
440: .getUserNameFromUserID(phpbbPostDAO
441: .getPosterIDFromPostID(last_post_id));
442: }
443: }
444: String forumName = phpbbForum.getforum_name();
445: String forumDesc = phpbbForum.getforum_desc();
446: Timestamp forumCreationDate = new Timestamp(0);
447: Timestamp forumModifiedDate = forumCreationDate;
448: Timestamp forumLastPostDate = forumCreationDate;
449: int forumOrder = phpbbForum.getforum_order();
450: int forumType = 0;
451: int forumFormatOption = 0;
452: int forumOption = 0;
453: int forumStatus = phpbbForum.getforum_status();
454: int forumModerationMode = 0;
455: String forumPassword = "";
456: int forumThreadCount = phpbbForum.getforum_topics();
457: int forumPostCount = phpbbForum.getforum_posts();
458:
459: /*forumDAO.create(forumID, categoryID, lastPostMemberName, forumName, forumDesc, forumCreationDate, forumModifiedDate,
460: forumLastPostDate, forumOrder, forumType, forumFormatOption, forumOption, forumStatus, forumModerationMode,
461: forumPassword, forumThreadCount, forumPostCount);*/
462: ForumBean bean = new ForumBean();
463: bean.setForumID(forumID);
464: bean.setCategoryID(categoryID);
465: bean.setLastPostMemberName(lastPostMemberName);
466: bean.setForumName(forumName);
467: bean.setForumDesc(forumDesc);
468: bean.setForumCreationDate(forumCreationDate);
469: bean.setForumModifiedDate(forumModifiedDate);
470: bean.setForumLastPostDate(forumLastPostDate);
471: bean.setForumOrder(forumOrder);
472: bean.setForumType(forumType);
473: bean.setForumFormatOption(forumFormatOption);
474: bean.setForumOption(forumOption);
475: bean.setForumStatus(forumStatus);
476: bean.setForumModerationMode(forumModerationMode);
477: bean.setForumPassword(forumPassword);
478: bean.setForumPostCount(forumPostCount);
479: bean.setForumThreadCount(forumThreadCount);
480:
481: // forumBeans.add(bean);
482:
483: forumDAO.create(forumID, categoryID, lastPostMemberName,
484: forumName, forumDesc, forumCreationDate,
485: forumModifiedDate, forumLastPostDate, forumOrder,
486: forumType, forumFormatOption, forumOption,
487: forumStatus, forumModerationMode, forumPassword,
488: forumThreadCount, forumPostCount);
489:
490: forumCount++;
491: // System.out.println(forumCount + " : " + forumName + " added!");
492: }
493:
494: System.out.println(forumCount);
495:
496: // forumDAOXML.createMultiple(forumBeans);
497: }
498:
499: public static void migratePosts(PrintStream ostream)
500: throws SQLException, DatabaseException,
501: ObjectNotFoundException, CreateException,
502: ForeignKeyNotFoundException, DuplicateKeyException {
503:
504: PhpbbPostDAO phpbbPostDAO = factory.getPhpbbPostDAO();
505: PhpbbUserDAO phpbbUserDAO = factory.getPhpUserDAO();
506: PhpbbPostTextDAO phpbbPostTextDAO = factory
507: .getPhpbbPostTextDAO();
508:
509: PostDAO postDAO = factory.getPostDAO();
510:
511: PostDAO postDAOXML = factory.getPostDAOXML();
512:
513: Collection phpbbPostBeans = phpbbPostDAO.getBeans();
514: Collection postBeans = new ArrayList();
515:
516: int postCount = 0;
517:
518: for (Iterator iter = phpbbPostBeans.iterator(); iter.hasNext();) {
519: PhpbbPost phpbbPost = (PhpbbPost) iter.next();
520: int postID = phpbbPost.getpost_id();
521: int forumID = phpbbPost.getforum_id();
522: int threadID = phpbbPost.gettopic_id();
523: int memberID = phpbbPost.getposter_id();
524:
525: Collection ppidrs = phpbbPostDAO
526: .getPostIDsFromTopicID(threadID);
527: int ppid = 0;
528: for (Iterator ppidrsIter = ppidrs.iterator(); ppidrsIter
529: .hasNext();) {
530: PhpbbPost phpbbPost_Top = (PhpbbPost) ppidrsIter.next();
531: int ppidtmp = phpbbPost_Top.getpost_id();
532: if (ppidtmp == postID)
533: break;
534: else
535: ppid = ppidtmp;
536: }
537:
538: int parentPostID = ppid;
539: String memberName = "";
540: if (memberID != PHPBB_ADMIN_ID
541: && memberID != PHPBB_GUEST_ID) {
542: memberName = phpbbUserDAO
543: .getUserNameFromUserID(memberID);
544: } else {
545: if (memberID == PHPBB_GUEST_ID) {
546: memberName = "Guest";
547: memberID = GUEST_ID;
548: } else {
549: // memberID = ADMIN_ID
550: memberName = "Admin";
551: memberID = ADMIN_ID;
552: }
553: }
554:
555: String lastEditMemberName = memberName;
556: PhpbbPostText phpbbPostText = phpbbPostTextDAO
557: .getBean(postID);
558: String postTopic = Utils.wrapIt(phpbbPostText
559: .getpost_subject());
560: String postBody = Utils
561: .wrapIt(phpbbPostText.getpost_text());
562:
563: //String PostCreationDate = Utils.wrapit(Utils.DateTimeFromS(RS.getLong("post_time")));
564: Timestamp postCreationDate = Utils
565: .getTimeStamp((long) phpbbPost.getpost_time());
566: Timestamp postLastEditDate = postCreationDate;
567: String postCreationIP = Utils.wrapIt(Utils
568: .HexIPtoString(phpbbPost.getposter_ip()));
569: String postLastEditIP = postCreationIP;
570: int postEditCount = phpbbPost.getpost_edit_count();
571: int postFormatOption = 0;
572: int postOption = 0;
573: int postStatus = 0;
574: String postIcon = "";
575: int postAttachCount = 0;
576:
577: /*postDAO.create(postID, parentPostID, forumID, threadID, memberID, memberName, lastEditMemberName, postTopic,
578: postBody, postCreationDate, postLastEditDate, postCreationIP, postLastEditIP, postEditCount, postFormatOption,
579: postOption, postStatus, postIcon, postAttachCount);*/
580: PostBean bean = new PostBean();
581: bean.setPostID(postID);
582: bean.setParentPostID(parentPostID);
583: bean.setForumID(forumID);
584: bean.setThreadID(threadID);
585: bean.setMemberID(memberID);
586: bean.setMemberName(memberName);
587: bean.setLastEditMemberName(lastEditMemberName);
588: bean.setPostTopic(postTopic);
589: bean.setPostBody(postBody);
590: bean.setPostCreationDate(postCreationDate);
591: bean.setPostLastEditDate(postLastEditDate);
592: bean.setPostCreationIP(postCreationIP);
593: bean.setPostLastEditIP(postLastEditIP);
594: bean.setPostEditCount(postEditCount);
595: bean.setPostFormatOption(postFormatOption);
596: bean.setPostOption(postOption);
597: bean.setPostStatus(postStatus);
598: bean.setPostIcon(postIcon);
599: bean.setPostAttachCount(postAttachCount);
600:
601: // postBeans.add(bean);
602:
603: postDAO.create(postID, parentPostID, forumID, threadID,
604: memberID, memberName, lastEditMemberName,
605: postTopic, postBody, postCreationDate,
606: postLastEditDate, postCreationIP, postLastEditIP,
607: postEditCount, postFormatOption, postOption,
608: postStatus, postIcon, postAttachCount);
609:
610: postCount++;
611: // System.out.println(postCount + " : " + postTopic + " added!");
612: System.out.println(postCount);
613: }
614:
615: // postDAOXML.createMultiple(postBeans);
616:
617: System.out.println(postCount);
618:
619: }
620:
621: public static void migrateThreads(PrintStream ostream)
622: throws SQLException, ObjectNotFoundException,
623: CreateException, DatabaseException,
624: ForeignKeyNotFoundException, DuplicateKeyException {
625:
626: PhpbbTopicsDAO phpbbTopicsDAO = factory.getPhpbbTopicsDAO();
627: PhpbbUserDAO phpbbUserDAO = factory.getPhpUserDAO();
628: PhpbbPostDAO phpbbPostDAO = factory.getPhpbbPostDAO();
629: PhpbbPostTextDAO phpbbPostTextDAO = factory
630: .getPhpbbPostTextDAO();
631:
632: ThreadDAO threadDAO = factory.getThreadDAO();
633:
634: ThreadDAO threadDAOXML = factory.getThreadDAOXML();
635: Collection phpbbTopicBeans = phpbbTopicsDAO.getBeans();
636: Collection threadBeans = new ArrayList();
637:
638: int threadCount = 0;
639:
640: for (Iterator iter = phpbbTopicBeans.iterator(); iter.hasNext();) {
641: PhpbbTopics bean = (PhpbbTopics) iter.next();
642: int threadID = bean.gettopic_id();
643: int forumID = bean.getforum_id();
644:
645: int memberID = bean.gettopic_poster();
646: String memberName = "";
647: if (memberID == PHPBB_ADMIN_ID) {
648: memberName = "Admin";
649: } else {
650: if (memberID == PHPBB_GUEST_ID) {
651: memberName = "Guest";
652: } else {
653: memberName = phpbbUserDAO
654: .getUserNameFromUserID(memberID);
655: }
656: }
657:
658: String lastPostMemberName = "";
659: try {
660: if (memberID == PHPBB_ADMIN_ID) {
661: lastPostMemberName = "Admin";
662: } else {
663: if (memberID == PHPBB_GUEST_ID) {
664: lastPostMemberName = "Guest";
665: } else {
666: lastPostMemberName = phpbbUserDAO
667: .getUserNameFromUserID(memberID);
668: }
669: }
670: } catch (ObjectNotFoundException oe) {
671: }
672: String threadTopic = bean.gettopic_title();
673:
674: String threadBody = "";
675: int first_post_id = bean.gettopic_first_post_id();
676: try {
677: threadBody = phpbbPostTextDAO
678: .getPostTextFromPostID(first_post_id);
679: } catch (ObjectNotFoundException oe) {
680: }
681:
682: threadBody = Utils.wrapIt(Utils
683: .stripPHPBBQuotes(threadBody));
684:
685: int threadVoteCount = 0;
686: int threadVoteTotalStars = 0;
687: Timestamp threadCreationDate = Utils.getTimeStamp(bean
688: .gettopic_time());
689:
690: Timestamp threadLastPostDate = new Timestamp(0);
691: int last_post_id = bean.gettopic_last_post_id();
692: try {
693: threadLastPostDate = Utils.getTimeStamp(phpbbPostDAO
694: .getPostTimeFromPostID(last_post_id));
695: } catch (ObjectNotFoundException oe) {
696: }
697:
698: int threadType = 0;
699: int threadOption = 0;
700: int threadStatus = bean.gettopic_status();
701: int threadHasPoll = bean.gettopic_vote();
702: int threadViewCount = bean.gettopic_views();
703: int threadReplyCount = bean.gettopic_replies();
704: String threadIcon = "";
705: int threadDuration = 0;
706: int threadAttachCount = 0;
707:
708: /*threadDAO.createThread(threadID, forumID, memberName, lastPostMemberName, threadTopic, threadBody, threadVoteCount, threadVoteTotalStars,
709: threadCreationDate, threadLastPostDate, threadType, threadOption, threadStatus, threadHasPoll, threadViewCount,
710: threadReplyCount, threadIcon, threadDuration, threadAttachCount);*/
711:
712: ThreadBean threadBean = new ThreadBean();
713: threadBean.setThreadID(threadID);
714: threadBean.setForumID(forumID);
715: threadBean.setMemberName(memberName);
716: threadBean.setLastPostMemberName(lastPostMemberName);
717: threadBean.setThreadTopic(threadTopic);
718: threadBean.setThreadBody(threadBody);
719: threadBean.setThreadVoteCount(threadVoteCount);
720: threadBean.setThreadVoteTotalStars(threadVoteTotalStars);
721: threadBean.setThreadCreationDate(threadCreationDate);
722: threadBean.setThreadLastPostDate(threadLastPostDate);
723: threadBean.setThreadType(threadType);
724: threadBean.setThreadOption(threadOption);
725: threadBean.setThreadStatus(threadStatus);
726: threadBean.setThreadHasPoll(threadHasPoll);
727: threadBean.setThreadViewCount(threadViewCount);
728: threadBean.setThreadReplyCount(threadReplyCount);
729: threadBean.setThreadIcon(threadIcon);
730: threadBean.setThreadDuration(threadDuration);
731: threadBean.setThreadAttachCount(threadAttachCount);
732:
733: // threadBeans.add(threadBean);
734:
735: threadDAO.createThread(threadID, forumID, memberName,
736: lastPostMemberName, threadTopic, threadBody,
737: threadVoteCount, threadVoteTotalStars,
738: threadCreationDate, threadLastPostDate, threadType,
739: threadOption, threadStatus, threadHasPoll,
740: threadViewCount, threadReplyCount, threadIcon,
741: threadDuration, threadAttachCount);
742:
743: threadCount++;
744: System.out.println(threadCount);
745:
746: }
747:
748: // threadDAOXML.createMultiple(threadBeans);
749:
750: System.out.println(threadCount);
751:
752: }
753:
754: public static void migratePrivateMessages(PrintStream ostream)
755: throws SQLException, DatabaseException,
756: ObjectNotFoundException, CreateException,
757: DuplicateKeyException {
758:
759: PhpbbPrivmMsgsDAO phpbbPrivmMsgsDAO = factory
760: .getPhpbbPrivmMsgsDAO();
761: PhpbbPrivmMsgsTextDAO phpbbPrivmMsgsTextDAO = factory
762: .getPhpbbPrivmMsgsTextDAO();
763:
764: MemberDAO memberDAO = factory.getMemberDAO();
765: MessageDAO messageDAO = factory.getMessageDAO();
766:
767: Collection phpbbPrivmMsgsBeans = phpbbPrivmMsgsDAO.getBeans();
768:
769: for (Iterator iter = phpbbPrivmMsgsBeans.iterator(); iter
770: .hasNext();) {
771: PhpbbPrivmMsgs bean = (PhpbbPrivmMsgs) iter.next();
772:
773: int messageID = bean.getprivmsgs_id();
774: int messageSenderID = bean.getprivmsgs_from_userid();
775: String messageSenderName = "";
776: int messageReceiverID = bean.getprivmsgs_to_userid();
777: String messageToList = "";
778: String messageCcList = "";
779: String messageBccList = "";
780: String messageTopic = Utils.wrapIt(bean
781: .getprivmsgs_subject());
782: String messageBody = Utils.wrapIt(phpbbPrivmMsgsTextDAO
783: .getBean(messageID).getprivmsgs_text());
784: int messageType = 0;
785: int messageOption = 0;
786: int messageStatus = 0;
787: int messageRead = bean.getprivmsgs_type();
788: int messageReadStatus = (messageRead == 1 || messageRead == 5) ? 0
789: : 1;
790: int messageNotify = 0;
791: String messageIcon = "";
792: int messageAttachCount = 0;
793: String messageIP = Utils.wrapIt(Utils.HexIPtoString(bean
794: .getprivmsgs_ip()));
795: Timestamp messageCreationDate = Utils.getTimeStamp(bean
796: .getprivmsgs_date());
797:
798: messageSenderID = correctMvnforumMemberID(messageSenderID);
799: try {
800: messageSenderName = memberDAO
801: .getMemberNameFromMemberID(messageSenderID);
802: } catch (ObjectNotFoundException oe) {
803: }
804:
805: messageReceiverID = correctMvnforumMemberID(messageReceiverID);
806: try {
807: messageToList = memberDAO
808: .getMemberNameFromMemberID(messageReceiverID);
809: } catch (ObjectNotFoundException oe) {
810: }
811:
812: messageDAO.create("Inbox", messageReceiverID,
813: messageSenderID, messageSenderName, messageToList,
814: messageCcList, messageBccList, messageTopic,
815: messageBody, messageType, messageOption,
816: messageStatus, messageReadStatus, messageNotify,
817: messageIcon, messageAttachCount, messageIP,
818: messageCreationDate);
819: messageDAO.create("Sent", messageSenderID, messageSenderID,
820: messageSenderName, messageToList, messageCcList,
821: messageBccList, messageTopic, messageBody,
822: messageType, messageOption, messageStatus, 1,
823: messageNotify, messageIcon, messageAttachCount,
824: messageIP, messageCreationDate);
825: }
826: }
827: }
|