From 1b54bd48f96e2223808c0742f0b7177382047b70 Mon Sep 17 00:00:00 2001 From: sje Date: Wed, 1 Nov 2006 14:45:20 +0000 Subject: git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@13 4f64403b-2f21-0410-a795-97e2b3489a10 --- random_message_changer/main.cpp | 184 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 random_message_changer/main.cpp (limited to 'random_message_changer/main.cpp') diff --git a/random_message_changer/main.cpp b/random_message_changer/main.cpp new file mode 100644 index 0000000..d07c891 --- /dev/null +++ b/random_message_changer/main.cpp @@ -0,0 +1,184 @@ +//--------------------------------------------------------------------------- +#include "common.h" +#include "options.h" + +PLUGINLINK *pluginLink; +HINSTANCE hInst; + +PLUGININFO pluginInfo={ + sizeof(PLUGININFO), + "Random Message Changer", + PLUGIN_MAKE_VERSION(0,0,2,2), + "Loads a random Status-Message from a file.", + "Christian Weihs & Scott Ellis", + "mail@scottellis.com.au", + "2003 Christian Weihs, 2006 Scott Ellis", + "http://www.scottellis.com.au", + 0, + 0 +}; + +//--------------------------------------------------------------------------- +extern "C" BOOL APIENTRY DllMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { + hInst=hinstDLL; + return TRUE; +} + +//--------------------------------------------------------------------------- +extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) { + return &pluginInfo; +} + +UINT TimerId; + +void ChangeAllProtoMessages(int statusMode, char *msg) { + int protoCount,i; + PROTOCOLDESCRIPTOR **proto; + + CallService(MS_PROTO_ENUMPROTOCOLS,(WPARAM)&protoCount,(LPARAM)&proto); + for(i=0;iszName,PS_SETAWAYMSG,statusMode,(LPARAM)msg); +} + +// sucht eine neue Message heraus. +char *GetRandomLine(char *file, char *buff, int bufflen) { + if (file == 0 || file[0] == 0 || file[0] == ':') return 0; + + FILE *inFile = fopen(file, "rt"); + if (!inFile){ + KillTimer(NULL, TimerId); + MessageBox(NULL, Translate("Can't open file!"), Translate("RMC Error"), MB_OK | MB_ICONERROR); + return 0; + } + + char *line[1000]; + char zeile[2048]; + int i=0; + while( i < 1000 && !feof(inFile)) { + fgets(zeile, sizeof(zeile), inFile); + + unsigned int x=0; + bool test=false; + + while(x < sizeof(zeile) && zeile[x]!=0) { + if(zeile[x] == '#' || zeile[x] == '\r' || zeile[x] == '\n') { + zeile[x] = 0; + x = sizeof(zeile); + } else { + if(zeile[x]!= ' ') test=true; + + if (zeile[x] == '\\' && zeile[x+1] == 'n') { + zeile[x+1]= '\n'; + zeile[x]= '\r'; + } + } + x++; + } + + if(test) line[i++]=strdup(zeile); + } + fclose(inFile); + + if(i != 0) { + int num = rand()%i; + strncpy(buff,line[num],bufflen); + for(int x=0;x