From 31e2d889329170fedc336c95048b1c1b42afc8ba Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Feb 2012 12:47:29 +0900 Subject: [PATCH] =?utf8?q?NCV=E3=81=AE=E3=83=AA=E3=82=B9=E3=83=8A=E3=83=BC?= =?utf8?q?=E6=83=85=E5=A0=B1=E5=90=8C=E6=9C=9F=E5=87=A6=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- nlite.suo | Bin 169472 -> 165888 bytes nlite/nlite.cpp | 6 ++- nlite/nlite.vcxproj | 1 - nlite/nlite.vcxproj.filters | 1 - nlite/nlite_chatData.cpp | 80 ++++++++++++++++++++++++++++++++++++++- nlite/nlite_chatData.h | 36 ++++++++++++++++++ nlite/nlite_common.cpp | 89 +++++++++++++++++++++++++++++++++++++++++++- nlite/nlite_common.h | 10 +++++ nlite/nlite_mainframe.cpp | 39 ++++++++++++++----- nlite/nlite_property.cpp | 84 ++++------------------------------------- nlite/nlite_property.h | 21 +---------- todo.txt | 8 ++-- 12 files changed, 260 insertions(+), 115 deletions(-) diff --git a/nlite.suo b/nlite.suo index 912e188b8faa73fb30c8264de7c3ca22d6281b32..a4ef26bb7b51ad36d42b4066109239ffe8bc718e 100644 GIT binary patch delta 6170 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 E0~a6ti~s-t diff --git a/nlite/nlite.cpp b/nlite/nlite.cpp index 99421dd..8872a48 100644 --- a/nlite/nlite.cpp +++ b/nlite/nlite.cpp @@ -9,7 +9,7 @@ CAppModule _Module; -static TCHAR localAppDataPath[_MAX_PATH]; + static WSAData wsaData; //winsockdata static HINTERNET hInternet = NULL; @@ -159,6 +159,10 @@ static BOOL InitializeNlite(){ SystemParametersInfo (SPI_SETLISTBOXSMOOTHSCROLLING,FALSE,FALSE,0); + + SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath); + ncvAppSettingPath = appFolderPath; + ncvAppSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\AppSetting.xml"); }catch (AppInitException e){ return rslt; diff --git a/nlite/nlite.vcxproj b/nlite/nlite.vcxproj index d868d3c..16cf7e5 100644 --- a/nlite/nlite.vcxproj +++ b/nlite/nlite.vcxproj @@ -106,7 +106,6 @@ - diff --git a/nlite/nlite.vcxproj.filters b/nlite/nlite.vcxproj.filters index fabd5c6..e0c83f6 100644 --- a/nlite/nlite.vcxproj.filters +++ b/nlite/nlite.vcxproj.filters @@ -24,7 +24,6 @@ リソース ファイル - リソース ファイル diff --git a/nlite/nlite_chatData.cpp b/nlite/nlite_chatData.cpp index 0177243..2d59a08 100644 --- a/nlite/nlite_chatData.cpp +++ b/nlite/nlite_chatData.cpp @@ -2,7 +2,6 @@ #include "nlite_include.h" namespace nlite{ -CListenerList nlite::listenerList; @@ -317,5 +316,84 @@ CListenerList::reference CListenerList::Register(ListenerData &listener,BOOL bUp } +BOOL CListenerList::ReadProperty(LPCTSTR fileName){ + BOOL rslt = FALSE; + CAtlFile userSettingFile; + ULONGLONG userSettingFileSize; + + + if(SUCCEEDED(userSettingFile.Create(fileName,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || SUCCEEDED(userSettingFile.GetSize(userSettingFileSize)) == FALSE){ + + throw Exception(TEXT("ƒŠƒXƒi[Ý’èƒtƒ@ƒCƒ‹‚ªŠJ‚¯‚Ü‚¹‚ñ‚Å‚µ‚½B‚±‚̃Gƒ‰[‚ª‘±‚­‚悤‚Å‚ ‚ê‚΁Aˆê“xÝ’èƒtƒ@ƒCƒ‹‚ðíœ‚µ‚čēxŽŽ‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); + } + std::vector userSettingBuf(static_cast(userSettingFileSize / sizeof(char) + (1 * sizeof(char)))); + userSettingFile.Read(&userSettingBuf[0],userSettingBuf.size()); + LPSTR userSettingStart = strstr(&userSettingBuf[0],"<"); + if(userSettingStart != NULL){ + ReadUserSettingXML rusx(nlite::listenerList); + rusx.Parse(userSettingStart); + } + + + return rslt; +} + + +ReadUserSettingXML::ReadUserSettingXML(CListenerList &in_listenerList):m_listenerList(in_listenerList),userNodeFlag(FALSE){} + +#define NLITE_READ_USER_STRING(at,l,t) if(_tcscmp(at[0],TEXT(#t)) == 0)l.t = at[1] +#define NLITE_READ_USER_INT(at,l,t) if(_tcscmp(at[0],TEXT(#t))==0)l.t = _tcstol((const wchar_t*)at[1],NULL,10) + + void ReadUserSettingXML::OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){ + + if(_tcscmp(pszName,TEXT("user")) == 0){ + + this->userNodeFlag = TRUE; + + + for(;papszAttrs[0] != NULL;papszAttrs += 2){ + + NLITE_READ_USER_STRING(papszAttrs,listenerBuff,name); + NLITE_READ_USER_STRING(papszAttrs,listenerBuff,community); + NLITE_READ_USER_INT(papszAttrs,listenerBuff,bgcolor); + NLITE_READ_USER_INT(papszAttrs,listenerBuff,time); + + } + + } + + return; + } + + void ReadUserSettingXML::OnEndElement (const XML_Char *pszName){ + + if(_tcscmp(pszName,TEXT("user")) == 0){ + + listenerList.Register(listenerBuff,TRUE); + this->userNodeFlag = FALSE; + this->listenerBuff.~ListenerData(); + new(&listenerBuff) ListenerData(); + + } + + return; + } + + void ReadUserSettingXML::OnCharacterData (const XML_Char *pszData, int nLength){ + + if(this->userNodeFlag == TRUE){ + + + listenerBuff.user_id.Append(pszData,nLength); + + + + + } + + + + return; + } } \ No newline at end of file diff --git a/nlite/nlite_chatData.h b/nlite/nlite_chatData.h index 0690b24..cc9efa1 100644 --- a/nlite/nlite_chatData.h +++ b/nlite/nlite_chatData.h @@ -104,6 +104,15 @@ namespace nlite{ reference Register(ListenerData &listener,BOOL bUpdate); + /// + ///ƒŠƒXƒi[ƒf[ƒ^“ǂݍž‚Ý + /// + BOOL ReadProperty(LPCTSTR fileName); + + /// + /// + /// + /// ///”wŒiF‚ðŽûW‚·‚é @@ -158,6 +167,8 @@ namespace nlite{ }; + + /// ///ƒRƒƒ“ƒgƒŠƒXƒgƒNƒ‰ƒX /// @@ -293,5 +304,30 @@ namespace nlite{ }; + + /// + ///ƒ†[ƒUÝ’èƒtƒ@ƒCƒ‹“ÇŽæƒNƒ‰ƒX + /// + class ReadUserSettingXML:public CXmlParser{ + + private: + ListenerData listenerBuff; + CListenerList &m_listenerList; + BOOL userNodeFlag; + + + + + + public: + + ReadUserSettingXML(CListenerList &in_listenerList); + + void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs); + + void OnEndElement (const XML_Char *pszName); + + void OnCharacterData (const XML_Char *pszData, int nLength); + }; } \ No newline at end of file diff --git a/nlite/nlite_common.cpp b/nlite/nlite_common.cpp index 84710f7..055ca1f 100644 --- a/nlite/nlite_common.cpp +++ b/nlite/nlite_common.cpp @@ -21,7 +21,10 @@ namespace nliteregex{ const tstring NUTHINGSTRING(TEXT("")); } Property nliteProperty; - +CListenerList nlite::listenerList; +TCHAR appFolderPath[_MAX_PATH]; +CString ncvAppSettingPath; +TCHAR localAppDataPath[_MAX_PATH]; VOID nlite::UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function){ tstring errMessage; @@ -122,6 +125,90 @@ err: goto end; } + +/// +///NCVƒ†[ƒUî•ñƒtƒ@ƒCƒ‹ƒpƒXŽæ“¾XMLƒp[ƒT +/// +class CReadNCVListenerInfoFile:public CXmlParser{ + +private: + + BOOL settingDirFlag; + CString &path; + + + + +public: + + CReadNCVListenerInfoFile(CString &in_path):settingDirFlag(FALSE),path(in_path){} + + void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){ + + if(_tcscmp(pszName,TEXT("SettingDir")) == 0){ + + settingDirFlag = TRUE; + + } + + } + + void OnEndElement (const XML_Char *pszName){ + + if(_tcscmp(pszName,TEXT("SettingDir")) == 0){ + + settingDirFlag = FALSE; + + } + + } + + void OnCharacterData (const XML_Char *pszData, int nLength){ + + if(settingDirFlag == TRUE){ + + path.Append(pszData,nLength); + + } + + } +}; + + CString GetNCVListenerInfoFilePath(){ + + + CString rslt; + + + if((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath )))){ + + + CAtlFile ncvAppSettingFile; + ULONGLONG ncvAppSettingFileSize = 0; + if(SUCCEEDED(ncvAppSettingFile.Create(ncvAppSettingPath,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || + SUCCEEDED(ncvAppSettingFile.GetSize(ncvAppSettingFileSize)) == FALSE){ + + throw Exception(TEXT("NCV‚̐ݒèƒtƒ@ƒCƒ‹‚ª“ǂݍž‚ß‚Ü‚¹‚ñ‚Å‚µ‚½"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); + + } + std::vector fileBuf(static_cast(ncvAppSettingFileSize) / sizeof(char) + (1 * sizeof(char))); + ncvAppSettingFile.Read(&fileBuf[0],fileBuf.size()); + LPSTR startPtr = strstr(&fileBuf[0],"<"); + if(startPtr != NULL){ + CReadNCVListenerInfoFile parser(rslt); + parser.Parse(startPtr); + rslt += TEXT("UserSetting.xml"); + + } + + } + + + + + return rslt; + } + const CApplicationInfo * appInfo = NULL; } \ No newline at end of file diff --git a/nlite/nlite_common.h b/nlite/nlite_common.h index c667a51..8089571 100644 --- a/nlite/nlite_common.h +++ b/nlite/nlite_common.h @@ -5,6 +5,9 @@ namespace nlite{ //ƒOƒ[ƒoƒ‹•Ï” extern const CApplicationInfo * appInfo; extern CListenerList listenerList; + extern TCHAR localAppDataPath[]; + extern TCHAR appFolderPath[]; + extern CString ncvAppSettingPath; //ƒOƒ[ƒoƒ‹ŠÖ” extern VOID UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function); @@ -17,6 +20,13 @@ namespace nlite{ /// extern BOOL SurelyCreate(LPCTSTR dir,BOOL bFile); + + /// + ///ncv‚̃ŠƒXƒi[î•ñƒtƒ@ƒCƒ‹ƒpƒX‚ðŽæ“¾ + /// + extern CString GetNCVListenerInfoFilePath(); + + namespace nliteregex{ typedef std::tr1::basic_regex tregex; namespace text{ diff --git a/nlite/nlite_mainframe.cpp b/nlite/nlite_mainframe.cpp index ff13f7b..90e9079 100644 --- a/nlite/nlite_mainframe.cpp +++ b/nlite/nlite_mainframe.cpp @@ -182,20 +182,41 @@ LRESULT CNliteMainFrame::OnCreate(LPCREATESTRUCT lpcs){ VOID CNliteMainFrame::Initialize(LPCTSTR localAppDataPath){ - nliteProperty.ReadProperty(); + try{ + nliteProperty.ReadProperty(); - commentView.SetProperty(nliteProperty.cvp,nliteProperty.gp); + + if((nliteProperty.gp.ncvUserSettingReadedFlag == FALSE) && + ((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath ))))){ + + if((::MessageBox(NULL,TEXT("NCV‚̃ŠƒXƒi[î•ñ‚Æ“¯Šú‚µ‚Ü‚·‚©H"),TEXT("ƒŠƒXƒi[î•ñ“ǂݍž‚Ý"),MB_OK | MB_OKCANCEL) == IDOK)){ + listenerList.ReadProperty(GetNCVListenerInfoFilePath()); + } + nliteProperty.gp.ncvUserSettingReadedFlag = TRUE; + - if(nliteProperty.gp.browserType == BT_NOSETTING){ - nliteProperty.CookieSetting(); - while(nliteProperty.gp.browserType == BT_NOSETTING){ - ::MessageBox(NULL,TEXT("ƒuƒ‰ƒEƒUƒ^ƒCƒv‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B‚±‚êˆÈŠO‚̃uƒ‰ƒEƒU‚ÍŒ»ÝŽg—p‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñ"),TEXT("ƒuƒ‰ƒEƒUƒ^ƒCƒvŽw’èƒGƒ‰["),MB_OK); + + + } + + listenerList.ReadProperty(nliteProperty.userSettingPath); + + commentView.SetProperty(nliteProperty.cvp,nliteProperty.gp); + if(nliteProperty.gp.browserType == BT_NOSETTING){ nliteProperty.CookieSetting(); + while(nliteProperty.gp.browserType == BT_NOSETTING){ + ::MessageBox(NULL,TEXT("ƒuƒ‰ƒEƒUƒ^ƒCƒv‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B‚±‚êˆÈŠO‚̃uƒ‰ƒEƒU‚ÍŒ»ÝŽg—p‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñ"),TEXT("ƒuƒ‰ƒEƒUƒ^ƒCƒvŽw’èƒGƒ‰["),MB_OK); + nliteProperty.CookieSetting(); + } } - } - nicoVideoAuth.SetBrowserType(nliteProperty.gp.browserType); - nicoLiveStream.SetResFrom(200); + nicoVideoAuth.SetBrowserType(nliteProperty.gp.browserType); + nicoLiveStream.SetResFrom(200); + }catch(Exception &e){ + + ::MessageBox(NULL,e.what(),TEXT("Ý’èƒtƒ@ƒCƒ‹“ǂݍž‚݃Gƒ‰["),MB_OK | MB_ICONERROR); + + } return; diff --git a/nlite/nlite_property.cpp b/nlite/nlite_property.cpp index 9edb220..c3a1fc6 100644 --- a/nlite/nlite_property.cpp +++ b/nlite/nlite_property.cpp @@ -153,9 +153,9 @@ namespace nlite{ CreatePropertyFile(); CAtlFile propertyFile; - CAtlFile ncvUserSettingFile; + ULONGLONG propertyFileSize; - ULONGLONG ncvUserSettingFileSize; + if(SUCCEEDED(propertyFile.Create(propertyPath,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || SUCCEEDED(propertyFile.GetSize(propertyFileSize)) == FALSE){ throw Exception(TEXT("Ý’èƒtƒ@ƒCƒ‹‚ªŠJ‚¯‚Ü‚¹‚ñ‚Å‚µ‚½B‚±‚̃Gƒ‰[‚ª‘±‚­‚悤‚Å‚ ‚ê‚΁Aˆê“xÝ’èƒtƒ@ƒCƒ‹‚ðíœ‚µ‚čēxŽŽ‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); @@ -174,24 +174,7 @@ namespace nlite{ } - if(this->gp.ncvUserSettingReadedFlag == FALSE){ - - TCHAR appFolderPath[_MAX_PATH]; - SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath); - CString ncvUserSettingPath = appFolderPath; - ncvUserSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\UserSetting.xml"); - if(SUCCEEDED(ncvUserSettingFile.Create(ncvUserSettingPath,GENERIC_READ,FILE_SHARE_READ,OPEN_ALWAYS)) == FALSE || SUCCEEDED(ncvUserSettingFile.GetSize(ncvUserSettingFileSize)) == FALSE){ - - throw Exception(TEXT("ƒŠƒXƒi[Ý’èƒtƒ@ƒCƒ‹‚ªŠJ‚¯‚Ü‚¹‚ñ‚Å‚µ‚½B‚±‚̃Gƒ‰[‚ª‘±‚­‚悤‚Å‚ ‚ê‚΁Aˆê“xÝ’èƒtƒ@ƒCƒ‹‚ðíœ‚µ‚čēxŽŽ‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢"),__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); - } - std::vector ncvUserSettingBuf(static_cast(ncvUserSettingFileSize / sizeof(char) + (1 * sizeof(char)))); - ncvUserSettingFile.Read(&ncvUserSettingBuf[0],ncvUserSettingBuf.size()); - LPSTR ncvUserSettingStart = strstr(&ncvUserSettingBuf[0],"<"); - if(ncvUserSettingStart != NULL){ - ReadUserSettingXML rusx; - rusx.Parse(ncvUserSettingStart); - } - } + return; } @@ -213,7 +196,7 @@ namespace nlite{ if((_tcslen(propertyBuf) == 0) || !((PathFileExists(propertyBuf) && !::PathIsDirectory( propertyBuf )))){ propertyFolderPath = appLocalPath; - propertyFolderPath += TEXT("\\qwerty_nico"); + propertyFolderPath += TEXT("\\qwerty_nico\\"); ::WritePrivateProfileString(sectionName,keyName,propertyFolderPath,iniFile); @@ -222,11 +205,11 @@ namespace nlite{ } propertySaveFolderPath = propertyFolderPath; - propertySaveFolderPath += TEXT("\\nlite"); + propertySaveFolderPath += TEXT("nlite\\"); propertyPath = propertySaveFolderPath; - propertyPath += TEXT("\\property.xml"); + propertyPath += TEXT("property.xml"); userSettingPath = propertySaveFolderPath; - userSettingPath += TEXT("\\user_setting.xml"); + userSettingPath += TEXT("listenerData.xml"); SurelyCreate(propertySaveFolderPath,FALSE); SurelyCreate(propertyPath,TRUE); SurelyCreate(userSettingPath,TRUE); @@ -504,59 +487,6 @@ end: -#define NLITE_READ_USER_STRING(at,l,t) if(_tcscmp(at[0],TEXT(#t)) == 0)l.t = at[1] -#define NLITE_READ_USER_INT(at,l,t) if(_tcscmp(at[0],TEXT(#t))==0)l.t = _tcstol((const wchar_t*)at[1],NULL,10) - - void ReadUserSettingXML::OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs){ - - if(_tcscmp(pszName,TEXT("user")) == 0){ - - this->userNodeFlag = TRUE; - - - for(;papszAttrs[0] != NULL;papszAttrs += 2){ - - NLITE_READ_USER_STRING(papszAttrs,listenerBuff,name); - NLITE_READ_USER_STRING(papszAttrs,listenerBuff,community); - NLITE_READ_USER_INT(papszAttrs,listenerBuff,bgcolor); - NLITE_READ_USER_INT(papszAttrs,listenerBuff,time); - - } - - } - - return; - } - - void ReadUserSettingXML::OnEndElement (const XML_Char *pszName){ - if(_tcscmp(pszName,TEXT("user")) == 0){ - - listenerList.Register(listenerBuff,TRUE); - this->userNodeFlag = FALSE; - this->listenerBuff.~ListenerData(); - new(&listenerBuff) ListenerData(); - - } - - return; - } - - void ReadUserSettingXML::OnCharacterData (const XML_Char *pszData, int nLength){ - - if(this->userNodeFlag == TRUE){ - - - listenerBuff.user_id.Append(pszData,nLength); - - - - - } - - - - return; - } } \ No newline at end of file diff --git a/nlite/nlite_property.h b/nlite/nlite_property.h index 4bc12ee..ff09d9e 100644 --- a/nlite/nlite_property.h +++ b/nlite/nlite_property.h @@ -198,26 +198,7 @@ namespace nlite{ }; - /// - ///ƒ†[ƒUÝ’èƒtƒ@ƒCƒ‹“ÇŽæƒNƒ‰ƒX - /// - class ReadUserSettingXML:public CXmlParser{ - - private: - ListenerData listenerBuff; - BOOL userNodeFlag; - - - - - - public: - void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs); - - void OnEndElement (const XML_Char *pszName); - - void OnCharacterData (const XML_Char *pszData, int nLength); - }; + } \ No newline at end of file diff --git a/todo.txt b/todo.txt index 079b0d9..f58ccf9 100644 --- a/todo.txt +++ b/todo.txt @@ -27,16 +27,16 @@ nlite EƒRƒƒ“ƒgŒŸõ‹@”\ŽÀ‘• EOpenJTalk‚É‚æ‚éƒRƒƒ“ƒg“ǂݏグ‹@”\ŽÀ‘• E–_“Ç‚Ý‚¿‚á‚ñ‚É‚æ‚éƒRƒƒ“ƒg“ǂݏグ‹@”\ŽÀ‘• -Eƒo[ƒWƒ‡ƒ“0.0.0.4ŒöŠJ +Eƒo[ƒWƒ‡ƒ“0.0.1.0ŒöŠJ +E•]‰¿”ÅŒöŠJ EƒRƒƒ“ƒg“ǂݏグŠwK‹@”\ŽÀ‘• Eƒc[ƒ‹ƒo[ŽÀ‘• -Eƒo[ƒWƒ‡ƒ“0.0.0.5ŒöŠJ +Eƒo[ƒWƒ‡ƒ“0.0.1.1ŒöŠJ EcomƒXƒNƒŠƒvƒgƒGƒ“ƒWƒ“‚ðŽg‚Á‚ăvƒ‰ƒOƒCƒ“‹@”\ŽÀ‘• EƒvƒƒpƒeƒBÝ’èƒEƒBƒ“ƒhƒE‚̍쐬 -Eƒo[ƒWƒ‡ƒ“0.0.0.6ŒöŠJ -Eˆê”ÊŒöŠJH +Eƒo[ƒWƒ‡ƒ“0.0.1.2ŒöŠJ -- 2.11.0