OSDN Git Service

Rename boardmanager.cpp and boardmanager.h
[kita/kita.git] / kita / src / libkita / boarddata.cpp
1 /***************************************************************************
2 *   Copyright (C) 2004 by Kita Developers                                 *
3 *   ikemo@users.sourceforge.jp                                            *
4 *                                                                         *
5 *   This program is free software; you can redistribute it and/or modify  *
6 *   it under the terms of the GNU General Public License as published by  *
7 *   the Free Software Foundation; either version 2 of the License, or     *
8 *   (at your option) any later version.                                   *
9 ***************************************************************************/
10
11 #include "boarddata.h"
12
13 using namespace Kita;
14
15 /*---------------------------------------------------------*/
16
17 /* BoardData */
18
19 BoardData::BoardData(const QString& boardName,
20                       const QString& hostname,
21                       const QString& rootPath,
22                       const QString& delimiter,
23                       const QString& bbsPath,
24                       const QString& ext,
25                       int boardtype)
26 : m_boardName(boardName), m_readIdx(false), m_rootPath(rootPath),
27     m_delimiter(delimiter), m_bbsPath(bbsPath), m_ext(ext), m_type(boardtype)
28 {
29     /* set hostname and create URL of board */
30     setHostName(hostname);
31
32     /* create default key */
33     QStringList keyHosts(m_hostname);
34     createKeys(keyHosts);
35
36     /* reset SETTING.TXT */
37     setSettingLoaded(false);
38 }
39
40 BoardData::~BoardData()
41 {}
42
43
44 /* public */
45 void BoardData::setHostName(const QString& hostName)
46 {
47     m_hostname = hostName;
48
49     /* m_basePath = (hostname)/(rootPath)/(bbsPath)/ */
50     m_basePath = m_hostname + m_rootPath + m_bbsPath + '/';
51
52     switch (m_type) {
53
54     case Board_MachiBBS:  /* m_cgiBasePath = (hostname)/(rootPath)/(delimiter)?BBS=(bbsPath) */
55         m_cgiBasePath = m_hostname + m_rootPath + m_delimiter + "?BBS=" + m_bbsPath.mid(1);
56         break;
57
58         /* m_cgiBasePath = (hostname)/(rootPath)/(delimiter)/(bbsPath)/ */
59     default:
60         m_cgiBasePath = m_hostname + m_rootPath + m_delimiter + m_bbsPath + '/';
61         break;
62     }
63 }
64
65
66 /*---------------------------*/
67 /* information */
68
69 /* public */
70 bool BoardData::readIdx() const
71 {
72     return m_readIdx;
73 }
74
75 /* public */
76 void BoardData::setReadIdx(bool idx)
77 {
78     m_readIdx = idx;
79 }
80
81 /* public */
82 const QString& BoardData::boardName() const
83 {
84     return m_boardName;
85 }
86
87 /* public */
88 const QString& BoardData::hostName() const
89 {
90     return m_hostname;
91 }
92
93 /* public */
94 const QString& BoardData::rootPath() const
95 {
96     return m_rootPath;
97 }
98
99 /* public */
100 const QString& BoardData::delimiter() const
101 {
102     return m_delimiter;
103 }
104
105 /* public */
106 const QString& BoardData::bbsPath() const
107 {
108     return m_bbsPath;
109 }
110
111 /* public */
112 const QString& BoardData::ext() const
113 {
114     return m_ext;
115 }
116
117 /* public */
118 int BoardData::type() const
119 {
120     return m_type;
121 }
122
123 /* public */
124 const QString& BoardData::basePath() const
125 {
126     return m_basePath;
127 }
128
129 /* public */
130 const QString& BoardData::cgiBasePath() const
131 {
132     return m_cgiBasePath;
133 }
134
135
136 /*---------------------------*/
137 /* SETTING.TXT */
138
139 /* public */
140 const QString BoardData::settingUrl() const
141 {
142     return m_basePath + "SETTING.TXT";
143 }
144
145 /* public */
146 bool BoardData::settingLoaded() const
147 {
148     return m_settingLoaded;
149 }
150
151 /* public */
152 const QString& BoardData::defaultName() const
153 {
154     return m_defaultName;
155 }
156
157 /* public */
158 int BoardData::lineNum() const
159 {
160     return m_linenum;
161 }
162
163 /* public */
164 int BoardData::msgCount() const
165 {
166     return m_msgCount;
167 }
168
169 /* public */
170 const KUrl& BoardData::titleImgUrl() const
171 {
172     return m_titleImgUrl;
173 }
174
175 /* public */
176 void BoardData::setSettingLoaded(bool set)
177 {
178     m_settingLoaded = set;
179     if (! set) {
180             m_defaultName.clear();
181             m_linenum = 0;
182             m_msgCount = 0;
183             m_titleImgUrl.clear();
184         }
185 }
186
187 /* public */
188 void BoardData::setDefaultName(const QString& newName)
189 {
190     m_defaultName = newName;
191 }
192
193 /* public */
194 void BoardData::setLineNum(int newLine)
195 {
196     m_linenum = newLine;
197 }
198
199 /* public */
200 void BoardData::setMsgCount(int msgCount)
201 {
202     m_msgCount = msgCount;
203 }
204
205 /* public */
206 void BoardData::setTitleImgUrl(const KUrl& url)
207 {
208     m_titleImgUrl = url;
209 }
210
211
212 /*---------------------------*/
213 /* keys */
214
215 /* create keys of DB */ /* public */
216 void BoardData::createKeys(const QStringList& keyHostList)
217 {
218     /* reset keys */
219     m_keyBasePathList.clear();
220     m_keyCgiBasePathList.clear();
221     m_keyHostList.clear();
222
223     m_keyHostList = keyHostList;
224
225     /* m_basePath = (hostname)/(rootPath)/(bbsPath)/ */
226     for (int i = 0; i < m_keyHostList.count(); ++i) {
227         if (m_keyHostList[ i ].length() > 0)
228             m_keyBasePathList += m_keyHostList[ i ] + m_rootPath + m_bbsPath + '/';
229     }
230
231     switch (m_type) {
232
233     case Board_MachiBBS:  /* m_cgiBasePath = (hostname)/(rootPath)/(delimiter)?BBS=(bbsPath) */
234         for (int i = 0; i < m_keyHostList.count(); ++i)
235             m_keyCgiBasePathList += m_keyHostList[ i ] + m_rootPath + m_delimiter
236                                     + "?BBS=" + m_bbsPath.mid(1);
237         break;
238
239         /* m_cgiBasePath = (hostname)/(rootPath)/(delimiter)/(bbsPath)/ */
240     default:
241         for (int i = 0; i < m_keyHostList.count(); ++i)
242             m_keyCgiBasePathList += m_keyHostList[ i ] + m_rootPath + m_delimiter + m_bbsPath + '/';
243         break;
244     }
245 }
246
247 /* public */
248 const QStringList& BoardData::keyHostList() const
249 {
250     return m_keyHostList;
251 }
252
253 /* public */
254 const QStringList& BoardData::keyBasePathList() const
255 {
256     return m_keyBasePathList;
257 }
258
259 /* public */
260 const QStringList& BoardData::keyCgiBasePathList() const
261 {
262     return m_keyCgiBasePathList;
263 }