summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MySpace/notifications.cpp220
-rw-r--r--MySpace/notifications.h10
-rw-r--r--MySpace/server_con.cpp14
-rw-r--r--MySpace/version.h2
4 files changed, 245 insertions, 1 deletions
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<KeyValue>::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