Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
AutoIt: 3.3+
Версия: 1.3
Категория: База данных
Описание: Программа для извлечения истории из файла базы данных Skype'a и сохранения результата в CHM файл справки.
Код/Пример:
Файл: Skype History Generation
Снимок:
История версий:
Инструкция:
Источник: autoit-script.ru
Автор(ы): Viktor1703, Afonichev Sergey
Версия: 1.3
Категория: База данных
Описание: Программа для извлечения истории из файла базы данных Skype'a и сохранения результата в CHM файл справки.
Код/Пример:
Написана на PureBasic, имеется и на AutoIt
Код:
#include <SQLite.au3>
#include <Date.au3>
#include <Array.au3>
Global $Index = 0, $sRead
$sFile = FileOpenDialog ('Skype History', '', 'Database (*.db)', -1, 'main')
If $sFile Then
_SQLite_Startup()
$hBase = _SQLite_Open($sFile)
CreateHHP('Skype.hhp', GetName($hBase))
$sName = _Skype_GetContacts($hBase)
DirCreate(@ScriptDir & '\html')
CreateHHC('Skype.hhc')
If IsArray($sName) Then
For $i = 0 To UBound($sName) - 1
If (Not $Index) Then
IniWrite('Skype.hhp', 'OPTIONS', 'Default topic', 'html\' & $sName[$i][0] & '.html')
$Index = 1
EndIf
WriteHHC('Skype.hhc', $sName[$i][0])
FileWrite(@ScriptDir & '\html\' & $sName[$i][0] & '.html', _Skype_GetMessages($hBase, $sName[$i][0]))
Next
EndIf
CloseHHC('Skype.hhc')
$iPid = Run(@ComSpec & ' /c hhc.exe Skype.hhp', '', @SW_HIDE, 2)
While 1
$sRead &= StdoutRead($iPid)
If $sRead Then
ExitLoop
EndIf
Wend
FileDelete('Skype.hhp')
FileDelete('Skype.hhc')
DirRemove(@ScriptDir & '\html', 1)
_SQLite_Close($hBase)
_SQLite_Shutdown()
MsgBox(0, 'Skype History Generation', 'Готово!')
EndIf
Func CreateHHP($sFile, $sName)
IniWrite($sFile, 'OPTIONS', 'Compatibility', '1.1')
IniWrite($sFile, 'OPTIONS', 'Compiled file', 'Skype (' & $sName & ').chm')
IniWrite($sFile, 'OPTIONS', 'Contents file', 'Skype.hhc')
IniWrite($sFile, 'OPTIONS', 'Language', '0x419')
IniWrite($sFile, 'OPTIONS', 'Title', 'Skype History (' & $sName & ')')
EndFunc
Func CreateHHC($sFile)
Local $sData = '<HTML>' & @CRLF
$sData &= ' <HEAD><!-- Sitemap 1.0 --></HEAD>' & @CRLF
$sData &= ' <BODY>' & @CRLF
$sData &= ' <OBJECT type="text/site properties"><param name="Window Styles" value="0x25"><param name="ImageType" value="Folder"></OBJECT>' & @CRLF
$sData &= ' <UL>' & @CRLF
FileWrite($sFile, $sData)
EndFunc
Func WriteHHC($sFile, $sName)
FileWrite($sFile, '<LI><OBJECT type="text/sitemap"><param name="Name" value="' & $sName & '"><param name="Local" value="html\' & $sName & '.html"></OBJECT>' & @CRLF)
EndFunc
Func CloseHHC($sFile)
Local $sData = ' </UL>' & @CRLF
$sData &= ' </BODY>' & @CRLF
$sData &= '</HTML>'
FileWrite($sFile, $sData)
EndFunc
Func GetName($hBase)
Local $aResult, $iRows, $iColumns
If _SQLite_GetTable2d($hBase, 'SELECT skypename FROM accounts', $aResult, $iRows, $iColumns) <> $SQLITE_OK Then
Return SetError(1, 0, 0)
EndIf
Return $aResult[$iRows][0]
EndFunc
Func _Skype_GetContacts($hBase)
Local $aResult, $iRows, $iColumns
If _SQLite_GetTable2d($hBase, 'SELECT skypename FROM contacts', $aResult, $iRows, $iColumns) <> $SQLITE_OK Then
Return SetError(1, 0, 0)
EndIf
_ArrayDelete($aResult, 0)
Return $aResult
EndFunc
Func _Skype_GetMessages($hBase, $sPartner)
Local $aResult, $iRows, $iColumns, $sReturn = ''
If _SQLite_GetTable2d($hBase, 'SELECT timestamp, from_dispname, body_xml FROM Messages WHERE dialog_partner = "' & $sPartner & '"', $aResult, $iRows, $iColumns) <> $SQLITE_OK Then
Return SetError(1, 0, 0)
EndIf
_ArrayDelete($aResult, 0)
For $i = 0 To UBound($aResult) -1
$sReturn &= '<font size="2" color="#414D8E"><b>[' & _DateAdd('s', $aResult[$i][0], "1970/01/01 00:00:00") & '] </b></font>'
$sReturn &= '<font size="2" color="#E21F1F"><b>' & $aResult[$i][1] & '</b></font>
'
$sReturn &= StringReplace($aResult[$i][2], @CRLF, '
') & '
'
Next
Return $sReturn
EndFunc
Файл: Skype History Generation
Снимок:
История версий:
v1.3
Инструкция:
1. Открываем файл shc.exe
2. Ищем файл базы данных от Skype main.db
3. Перемещаем файл базы данных мышкой в консольное окно и жмём Enter
2. Ищем файл базы данных от Skype main.db
3. Перемещаем файл базы данных мышкой в консольное окно и жмём Enter
Источник: autoit-script.ru
Автор(ы): Viktor1703, Afonichev Sergey