172 lines
6.1 KiB
Python
172 lines
6.1 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# --------------------------------------------------------------------------- #
|
|
# #
|
|
# Create and indexate databases for iSida Jabber Bot #
|
|
# Copyright (C) 2011 diSabler <dsy@dsy.name> #
|
|
# #
|
|
# This program is free software: you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation, either version 3 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
# This program is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# GNU General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU General Public License #
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
|
# #
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
import os, sys, sqlite3
|
|
|
|
set_folder = u'settings/' # папка настроек
|
|
|
|
agestat = set_folder+u'agestat.db' # статистика возрастов
|
|
jidbase = set_folder+u'jidbase.db' # статистика jid'ов
|
|
talkers = set_folder+u'talkers.db' # статистика болтунов
|
|
wtfbase = set_folder+u'wtfbase2.db' # определения
|
|
answers = set_folder+u'answers.db' # ответы бота
|
|
saytobase = set_folder+u'sayto.db' # база команды "передать"
|
|
distbase = set_folder+u'dist_user.db' # пользоватальская база команды "dist"
|
|
|
|
print 'Databases creator and indexator for Isida Jabber Bot v2.00 and higher'
|
|
print '(c) Disabler Production Lab.'
|
|
|
|
stb = os.path.isfile(agestat)
|
|
agest = sqlite3.connect(agestat)
|
|
cu_agest = agest.cursor()
|
|
print agestat,
|
|
if not stb:
|
|
cu_agest.execute('''create table age (room text, nick text, jid text, time integer, age integer, status integer, type text, message text)''')
|
|
agest.commit()
|
|
print 'was created,',
|
|
else: print 'used exist,',
|
|
try: cu_agest.execute('''drop index rj''')
|
|
except: pass
|
|
try: cu_agest.execute('''drop index rnj''')
|
|
except: pass
|
|
cu_agest.execute('''create index rj on age (room,jid)''')
|
|
cu_agest.execute('''create index rnj on age (room,nick,jid)''')
|
|
agest.commit()
|
|
print 'indexed'
|
|
agest.close()
|
|
|
|
stb = os.path.isfile(jidbase)
|
|
jidst = sqlite3.connect(jidbase)
|
|
cu_jidst = jidst.cursor()
|
|
print jidbase,
|
|
if not stb:
|
|
cu_jidst.execute('''create table jid (login text, server text, resourse text)''')
|
|
jidst.commit()
|
|
print 'was created,',
|
|
else: print 'used exist,',
|
|
try: cu_jidst.execute('''drop index log''')
|
|
except: pass
|
|
try: cu_jidst.execute('''drop index srv''')
|
|
except: pass
|
|
try: cu_jidst.execute('''drop index res''')
|
|
except: pass
|
|
cu_jidst.execute('''create index log on jid (login)''')
|
|
cu_jidst.execute('''create index srv on jid (server)''')
|
|
cu_jidst.execute('''create index res on jid (resourse)''')
|
|
jidst.commit()
|
|
print 'indexed'
|
|
jidst.close()
|
|
|
|
stb = os.path.isfile(talkers)
|
|
talkst = sqlite3.connect(talkers)
|
|
cu_talkst = talkst.cursor()
|
|
print talkers,
|
|
if not stb:
|
|
cu_talkst.execute('''create table talkers (room text, jid text, nick text, words integer, frases integer)''')
|
|
talkst.commit()
|
|
print 'was created,',
|
|
else: print 'used exist,',
|
|
try: cu_talkst.execute('''drop index rj''')
|
|
except: pass
|
|
try: cu_talkst.execute('''drop index rjn''')
|
|
except: pass
|
|
cu_talkst.execute('''create index rj on talkers (room,jid)''')
|
|
cu_talkst.execute('''create index rjn on talkers (room,jid,nick)''')
|
|
talkst.commit()
|
|
print 'indexed'
|
|
talkst.close()
|
|
|
|
stb = os.path.isfile(wtfbase)
|
|
wtfst = sqlite3.connect(wtfbase)
|
|
cu_wtfst = wtfst.cursor()
|
|
print wtfbase,
|
|
if not stb:
|
|
cu_wtfst.execute('''create table wtf (ind integer, room text, jid text, nick text, wtfword text, wtftext text, time text, lim integer)''')
|
|
wtfst.commit()
|
|
print 'was created,',
|
|
else: print 'used exist,',
|
|
try: cu_wtfst.execute('''drop index r''')
|
|
except: pass
|
|
try: cu_wtfst.execute('''drop index rj''')
|
|
except: pass
|
|
try: cu_wtfst.execute('''drop index rw''')
|
|
except: pass
|
|
try: cu_wtfst.execute('''drop index rww''')
|
|
except: pass
|
|
cu_wtfst.execute('''create index r on wtf (room)''')
|
|
cu_wtfst.execute('''create index rj on wtf (room,jid)''')
|
|
cu_wtfst.execute('''create index rw on wtf (room,wtfword)''')
|
|
cu_wtfst.execute('''create index rww on wtf (room,wtfword,wtftext)''')
|
|
wtfst.commit()
|
|
print 'indexed'
|
|
wtfst.close()
|
|
|
|
stb = os.path.isfile(answers)
|
|
answst = sqlite3.connect(answers)
|
|
cu_answst = answst.cursor()
|
|
print answers,
|
|
if not stb:
|
|
cu_answst.execute('''create table answer (ind integer, body text)''')
|
|
cu_answst.execute('insert into answer values (?,?)', (1,u';-)'))
|
|
cu_answst.execute('insert into answer values (?,?)', (2,u'Привет'))
|
|
answst.commit()
|
|
print 'was created,',
|
|
else: print 'used exist,',
|
|
try: cu_answst.execute('''drop index id''')
|
|
except: pass
|
|
cu_answst.execute('''create index id on answer (ind)''')
|
|
answst.commit()
|
|
print 'indexed'
|
|
answst.close()
|
|
|
|
stb = os.path.isfile(saytobase)
|
|
sdb = sqlite3.connect(saytobase)
|
|
cu = sdb.cursor()
|
|
print saytobase,
|
|
if not stb:
|
|
cu.execute('''create table st (who text, room text, jid text, message text)''')
|
|
sdb.commit()
|
|
print 'was created,',
|
|
else: print 'used exist,',
|
|
try: cu.execute('''drop index rj''')
|
|
except: pass
|
|
cu.execute('''create index rj on st (room,jid)''')
|
|
sdb.commit()
|
|
print 'indexed'
|
|
sdb.close()
|
|
|
|
if os.path.isfile(distbase):
|
|
distb = sqlite3.connect(distbase)
|
|
cu = distb.cursor()
|
|
print distbase + ' used exist,',
|
|
try: cu.execute('''drop index di''')
|
|
except: pass
|
|
cu.execute('''create index di on dist (point)''')
|
|
distb.commit()
|
|
print 'indexed'
|
|
distb.close()
|
|
|
|
########################################
|
|
|
|
print 'Finished!'
|