From 37be3cf3d8e43198e577a85a6f2c6e12e8dd59db Mon Sep 17 00:00:00 2001 From: sje Date: Sun, 8 Jul 2007 17:27:12 +0000 Subject: added profile comment and friend request notifications git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@260 4f64403b-2f21-0410-a795-97e2b3489a10 --- MySpace/notifications.cpp | 220 ++++++++++++++++++++++++++++++++++++++++++++++ MySpace/notifications.h | 10 +++ MySpace/server_con.cpp | 14 +++ MySpace/version.h | 2 +- 4 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 MySpace/notifications.cpp create mode 100644 MySpace/notifications.h diff --git a/MySpace/notifications.cpp b/MySpace/notifications.cpp new file mode 100644 index 0000000..3e01416 --- /dev/null +++ b/MySpace/notifications.cpp @@ -0,0 +1,220 @@ +#include "common.h" +#include "notifications.h" +#include "resource.h" + +HWND hWndMailPopup = 0, hWndBlogPopup = 0; + +LRESULT CALLBACK MailPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) +{ + switch( message ) { + case UM_INITPOPUP: + hWndMailPopup = hWnd; + break; + + case WM_COMMAND: + CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://messaging.myspace.com/index.cfm?fuseaction=mail.inbox"); + + hWndMailPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case WM_CONTEXTMENU: + + hWndMailPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case UM_FREEPLUGINDATA: + { + HICON hIcon = (HICON)PUGetPluginData(hWnd); + DestroyIcon(hIcon); + } + return TRUE; + } + + return DefWindowProc(hWnd, message, wParam, lParam); +} + + +void NotifyMail() { + if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; + if(hWndMailPopup) return; + + POPUPDATAT ppd = {0}; + TCHAR wproto[256]; +#ifndef _UNICODE + strncpy(wproto, MODULE, 256); +#else + MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); +#endif + + _tcsncpy(ppd.lptzContactName, wproto, 256); + _tcscpy(ppd.lptzText, TranslateT("You have unread mail")); + ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); + ppd.PluginWindowProc = ( WNDPROC )MailPopupWindowProc; + ppd.PluginData = ppd.lchIcon; + ppd.iSeconds = -1; + + PUAddPopUpT(&ppd); +} + + +LRESULT CALLBACK BlogCommentPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) +{ + switch( message ) { + case UM_INITPOPUP: + hWndBlogPopup = hWnd; + break; + case WM_COMMAND: + CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://blog.myspace.com/index.cfm?fuseaction=blog"); + + hWndBlogPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case WM_CONTEXTMENU: + hWndBlogPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case UM_FREEPLUGINDATA: + { + HICON hIcon = (HICON)PUGetPluginData(hWnd); + DestroyIcon(hIcon); + } + return TRUE; + } + + return DefWindowProc(hWnd, message, wParam, lParam); +} + +void NotifyBlogComment() { + + if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; + if(hWndBlogPopup) return; + + POPUPDATAT ppd = {0}; + TCHAR wproto[256]; +#ifndef _UNICODE + strncpy(wproto, MODULE, 256); +#else + MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); +#endif + + _tcsncpy(ppd.lptzContactName, wproto, 256); + _tcscpy(ppd.lptzText, TranslateT("You have unread blog comments")); + ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); + ppd.PluginWindowProc = ( WNDPROC )BlogCommentPopupWindowProc; + ppd.PluginData = ppd.lchIcon; + ppd.iSeconds = -1; + + PUAddPopUpT(&ppd); +} + +LRESULT CALLBACK ProfileCommentPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) +{ + switch( message ) { + case UM_INITPOPUP: + hWndBlogPopup = hWnd; + break; + case WM_COMMAND: + { + char url[1024]; + mir_snprintf(url, 1024, "http://comment.myspace.com/index.cfm?fuseaction=user.viewComments&friendID=%d", DBGetContactSettingDword(0, MODULE, "UID", 0)); + CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)url); + } + + hWndBlogPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case WM_CONTEXTMENU: + hWndBlogPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case UM_FREEPLUGINDATA: + { + HICON hIcon = (HICON)PUGetPluginData(hWnd); + DestroyIcon(hIcon); + } + return TRUE; + } + + return DefWindowProc(hWnd, message, wParam, lParam); +} + +void NotifyProfileComment() { + + if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; + if(hWndBlogPopup) return; + + POPUPDATAT ppd = {0}; + TCHAR wproto[256]; +#ifndef _UNICODE + strncpy(wproto, MODULE, 256); +#else + MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); +#endif + + _tcsncpy(ppd.lptzContactName, wproto, 256); + _tcscpy(ppd.lptzText, TranslateT("You have unread profile comments")); + ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); + ppd.PluginWindowProc = ( WNDPROC )ProfileCommentPopupWindowProc; + ppd.PluginData = ppd.lchIcon; + ppd.iSeconds = -1; + + PUAddPopUpT(&ppd); +} + +LRESULT CALLBACK FriendRequestPopupWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) +{ + switch( message ) { + case UM_INITPOPUP: + hWndBlogPopup = hWnd; + break; + case WM_COMMAND: + CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://messaging.myspace.com/index.cfm?fuseaction=mail.friendRequests"); + + hWndBlogPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case WM_CONTEXTMENU: + hWndBlogPopup = 0; + PUDeletePopUp( hWnd ); + return TRUE; + + case UM_FREEPLUGINDATA: + { + HICON hIcon = (HICON)PUGetPluginData(hWnd); + DestroyIcon(hIcon); + } + return TRUE; + } + + return DefWindowProc(hWnd, message, wParam, lParam); +} + +void NotifyFriendRequest() { + + if (!ServiceExists( MS_POPUP_ADDPOPUPT)) return; + if(hWndBlogPopup) return; + + POPUPDATAT ppd = {0}; + TCHAR wproto[256]; +#ifndef _UNICODE + strncpy(wproto, MODULE, 256); +#else + MultiByteToWideChar(code_page, 0, MODULE, -1, wproto, 256); +#endif + + _tcsncpy(ppd.lptzContactName, wproto, 256); + _tcscpy(ppd.lptzText, TranslateT("You have new friend requests")); + ppd.lchIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, SM_CXSMICON, SM_CYSMICON, 0); + ppd.PluginWindowProc = ( WNDPROC )FriendRequestPopupWindowProc; + ppd.PluginData = ppd.lchIcon; + ppd.iSeconds = -1; + + PUAddPopUpT(&ppd); +} diff --git a/MySpace/notifications.h b/MySpace/notifications.h new file mode 100644 index 0000000..eeae6e6 --- /dev/null +++ b/MySpace/notifications.h @@ -0,0 +1,10 @@ +#ifndef _NOTIFICATIONS_INC +#define _NOTIFICATIONS_INC + +void NotifyMail(); +void NotifyBlogComment(); +void NotifyProfileComment(); +void NotifyFriendRequest(); + +#endif + diff --git a/MySpace/server_con.cpp b/MySpace/server_con.cpp index 2753f14..10e3197 100644 --- a/MySpace/server_con.cpp +++ b/MySpace/server_con.cpp @@ -681,6 +681,20 @@ void __cdecl ServerThreadFunc(void*) { if(body.get_string("Mail", b, 10)) { NotifyMail(); } + if(body.get_string("ProfileComment", b, 10)) { + NotifyProfileComment(); + } + if(body.get_string("FriendRequest", b, 10)) { + NotifyFriendRequest(); + } + if(DBGetContactSettingByte(0, MODULE, "DebugMail", 0)) { + char pmsg[512]; + for(LinkedList::Iterator i = body.start(); i.has_val(); i.next()) { + KeyValue &kv = i.val(); + mir_snprintf(pmsg, 512, "%s = %s", kv.first.text, kv.second.text); + PUShowMessage(pmsg, SM_NOTIFY); + } + } } } buffer_bytes -= (end - pbuff); diff --git a/MySpace/version.h b/MySpace/version.h index bb11509..4ca9e2c 100644 --- a/MySpace/version.h +++ b/MySpace/version.h @@ -5,7 +5,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 0 #define __RELEASE_NUM 3 -#define __BUILD_NUM 0 +#define __BUILD_NUM 3 #define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM #define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM -- cgit v1.2.3