mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 06:05:58 -06:00
1691 lines
65 KiB
C++
1691 lines
65 KiB
C++
#include <CtrlLib/CtrlLib.h>
|
|
|
|
#include "windows.h"
|
|
#include "ChatBot.h"
|
|
//#include <ftplib.h>
|
|
#include <iostream>
|
|
#include "IniReader.h"
|
|
|
|
using namespace Upp;
|
|
|
|
void ChatBotClass::checksendlog() {
|
|
vector<MStruct>::iterator it;
|
|
time_t timenow=time(NULL);
|
|
for(it = sendlog.begin(); it != sendlog.end(); it++) {
|
|
MStruct msg;
|
|
msg=*it;
|
|
if ((timenow-msg.timestamp)>3) {
|
|
printf("resend: (%s)(%i)\n",msg.message.print(),msg.timestamp);
|
|
resendcheck=0;
|
|
MString k;
|
|
k=msg.message.print();
|
|
k+="(R)";
|
|
say(k.print());
|
|
resendcheck=1;
|
|
sendlog.erase(it);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
void ChatBotClass::addtosendlog (MString message) {
|
|
if (message.beginswith("/")) return;
|
|
MStruct msg;
|
|
msg.nick="";
|
|
msg.message=message;
|
|
msg.timestamp=time(NULL);
|
|
sendlog.push_back(msg);
|
|
// printf("addtosend (%s)(%i)\n",message.print(),msg.timestamp);
|
|
}
|
|
void ChatBotClass::delfromsendlog (MString message) {
|
|
// printf("delfr:(%s)\n",message.print());
|
|
vector<MStruct>::iterator it;
|
|
int counter=0;
|
|
message.erase(" ");
|
|
message.erase("_");
|
|
message.erase("*");
|
|
// printf("chx:[(%s)]\n",message.print());
|
|
for(it = sendlog.begin(); it != sendlog.end(); it++) {
|
|
MStruct msg;
|
|
msg=*it;
|
|
MString k;
|
|
k=msg.message.print();
|
|
k.erase("‏");
|
|
k.erase("‎");
|
|
k.erase("⇒");
|
|
// k.erase("⇑");
|
|
// k.erase("⇓");
|
|
k.replace(""","\"");
|
|
k.replace("ß","ß");
|
|
k.replace("<","<");
|
|
k.replace(">",">");
|
|
|
|
k.replace("é","e");
|
|
k.replace("á","a");
|
|
k.replace("í","i");
|
|
k.replace("ó","o");
|
|
k.replace("ú","u");
|
|
k.replace("ä","ä");
|
|
k.replace("ü","ü");
|
|
k.replace("ö","ö");
|
|
k.replace("Ä","ä"); //wg. umlaute werden mit lowercase ncht in klein buchstaben verwandelt
|
|
k.replace("Ü","ü");
|
|
k.replace("Ö","ö");
|
|
|
|
k.erase("+");
|
|
k.erase(" ");
|
|
k.erase("_");
|
|
k.erase("*");
|
|
// printf("chs:[(%s)]\n",k.print());
|
|
if (k==message) {
|
|
// printf("delfromsendlog: (%s)(%i)\n",message.print(),msg.timestamp);
|
|
sendlog.erase(it);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
void ChatBotClass::addtomessagelog(MString sender, MString message) {
|
|
MStruct msg;
|
|
msg.nick=sender;
|
|
msg.message=message;
|
|
msg.timestamp=time(NULL);
|
|
messagelog.push_back(msg);
|
|
|
|
MString zielnick;
|
|
MString zielstring;
|
|
int zc=1;int sc=1;
|
|
int firsttimestamp;int lasttimestamp;int lasttimestamp2;
|
|
vector<MStruct>::iterator it;
|
|
int counter=0;
|
|
for(it = messagelog.begin(); it != messagelog.end(); it++) {
|
|
MStruct o;
|
|
o=*it;
|
|
if (counter==0) {zielnick=o.nick;zielstring=o.message;firsttimestamp=o.timestamp;}
|
|
if (counter!=0) if (o.nick==zielnick) {zc++;lasttimestamp=o.timestamp;}
|
|
if (counter!=0) if (o.nick==zielnick&&o.message==zielstring) {sc++;lasttimestamp2=o.timestamp;}
|
|
// printf("%s %i\n",o.nick.print(),o.timestamp);
|
|
counter++;
|
|
}
|
|
if (zc>3) if ((lasttimestamp-firsttimestamp)<2) {addtosperrlist(zielnick);messagelog.clear();}
|
|
if (sc>3) if ((lasttimestamp2-firsttimestamp)<7) {addtosperrlist(zielnick);messagelog.clear();}
|
|
if (messagelog.size()>4) messagelog.erase(messagelog.begin());
|
|
}
|
|
|
|
bool ChatBotClass::onsperrliste(MString nick) {
|
|
vector<MString>::iterator it;
|
|
for(it = sperrnicks.begin(); it != sperrnicks.end(); it++) {
|
|
MString o;
|
|
o=*it;
|
|
// printf("%s %s\n",nick.print(),o.print());
|
|
if (o==nick) return(1);
|
|
}
|
|
return(0);
|
|
}
|
|
|
|
void ChatBotClass::addtosperrlist(MString nick) {
|
|
if (nick!="Wenlok") {
|
|
FILE *fd;
|
|
if (NULL == (fd = fopen (".\\sperrliste.ini", "a+"))) printf("error: can't open file sperrliste.ini\n");
|
|
fprintf (fd, "%s\n",nick.print());
|
|
fclose(fd);
|
|
sperrnicks.push_back(nick);
|
|
cout<<nick.print()<<" addet to spamlist\n"<<endl;
|
|
if (autokicknicksonsperrlist) {MString k;k="/sepkick ";k+=nick;say(k.print());}
|
|
}
|
|
}
|
|
|
|
void ChatBotClass::readsperrliste() {
|
|
printf("Sperrliste Einlesen... ");
|
|
FILE *fd;
|
|
if (NULL == (fd = fopen (".\\sperrliste.ini", "r"))) {printf("error: can't open file sperrliste.ini\n");return;}
|
|
MString s11;
|
|
char s1[20];
|
|
int cvar=0;
|
|
while (fscanf (fd, "%s\n",&s1)!=EOF) {
|
|
cvar++;
|
|
s11=s1;
|
|
// printf("%s\n",s11.print());
|
|
sperrnicks.push_back(s11);
|
|
}
|
|
fclose(fd);
|
|
printf("%i Einträge gefunden\n",cvar);
|
|
vector<MString>::iterator it;
|
|
for(it = sperrnicks.begin(); it != sperrnicks.end(); it++) {
|
|
MString o;
|
|
o=*it;
|
|
// cout<<o.print()<<endl;
|
|
}
|
|
}
|
|
|
|
void ChatBotClass::readschlussel() {
|
|
CIniReader iniReader(".\\schlussel.ini");
|
|
schlussel[0].schl = atol(iniReader.ReadString("Schlussel", "A", ""));
|
|
schlussel[0].zeichen="A";
|
|
schlussel[0].width=41;
|
|
schlussel[1].schl = atol(iniReader.ReadString("Schlussel", "B", ""));
|
|
schlussel[1].zeichen="B";
|
|
schlussel[1].width=41;
|
|
schlussel[2].schl = atol(iniReader.ReadString("Schlussel", "C", ""));
|
|
schlussel[2].zeichen="C";
|
|
schlussel[2].width=42;
|
|
schlussel[3].schl = atol(iniReader.ReadString("Schlussel", "D", ""));
|
|
schlussel[3].zeichen="D";
|
|
schlussel[3].width=45;
|
|
schlussel[4].schl = atol(iniReader.ReadString("Schlussel", "E", ""));
|
|
schlussel[4].zeichen="E";
|
|
schlussel[4].width=37.032;
|
|
schlussel[5].schl = atol(iniReader.ReadString("Schlussel", "F", ""));
|
|
schlussel[5].zeichen="F";
|
|
schlussel[5].width=32,8;
|
|
schlussel[6].schl = atol(iniReader.ReadString("Schlussel", "G", ""));
|
|
schlussel[6].zeichen="G";
|
|
schlussel[6].width=47;
|
|
schlussel[7].schl = atol(iniReader.ReadString("Schlussel", "H", ""));
|
|
schlussel[7].zeichen="H";
|
|
schlussel[7].width=41;
|
|
schlussel[8].schl = atol(iniReader.ReadString("Schlussel", "I", ""));
|
|
schlussel[8].zeichen="I";
|
|
schlussel[8].width=22,62;
|
|
schlussel[9].schl = atol(iniReader.ReadString("Schlussel", "J", ""));
|
|
schlussel[9].zeichen="J";
|
|
schlussel[9].width=27;
|
|
schlussel[10].schl = atol(iniReader.ReadString("Schlussel", "K", ""));
|
|
schlussel[10].zeichen="K";
|
|
schlussel[10].width=41;
|
|
schlussel[11].schl = atol(iniReader.ReadString("Schlussel", "L", ""));
|
|
schlussel[11].zeichen="L";
|
|
schlussel[11].width=33;
|
|
schlussel[12].schl = atol(iniReader.ReadString("Schlussel", "M", ""));
|
|
schlussel[12].zeichen="M";
|
|
schlussel[12].width=51;
|
|
schlussel[13].schl = atol(iniReader.ReadString("Schlussel", "N", ""));
|
|
schlussel[13].zeichen="N";
|
|
schlussel[13].width=41;
|
|
schlussel[14].schl = atol(iniReader.ReadString("Schlussel", "O", ""));
|
|
schlussel[14].zeichen="O";
|
|
schlussel[14].width=45;
|
|
schlussel[15].schl = atol(iniReader.ReadString("Schlussel", "P", ""));
|
|
schlussel[15].zeichen="P";
|
|
schlussel[15].width=36;
|
|
schlussel[16].schl = atol(iniReader.ReadString("Schlussel", "Q", ""));
|
|
schlussel[16].zeichen="Q";
|
|
schlussel[16].width=47;
|
|
schlussel[17].schl = atol(iniReader.ReadString("Schlussel", "R", ""));
|
|
schlussel[17].zeichen="R";
|
|
schlussel[17].width=41;
|
|
schlussel[18].schl = atol(iniReader.ReadString("Schlussel", "S", ""));
|
|
schlussel[18].zeichen="S";
|
|
schlussel[18].width=41;
|
|
schlussel[19].schl = atol(iniReader.ReadString("Schlussel", "T", ""));
|
|
schlussel[19].zeichen="T";
|
|
schlussel[19].width=37,032;
|
|
schlussel[20].schl = atol(iniReader.ReadString("Schlussel", "U", ""));
|
|
schlussel[20].zeichen="U";
|
|
schlussel[20].width=41;
|
|
schlussel[21].schl = atol(iniReader.ReadString("Schlussel", "V", ""));
|
|
schlussel[21].zeichen="V";
|
|
schlussel[21].width=41;
|
|
schlussel[22].schl = atol(iniReader.ReadString("Schlussel", "W", ""));
|
|
schlussel[22].zeichen="W";
|
|
schlussel[22].width=59.088;
|
|
schlussel[23].schl = atol(iniReader.ReadString("Schlussel", "X", ""));
|
|
schlussel[23].zeichen="X";
|
|
schlussel[23].width=41;
|
|
schlussel[24].schl = atol(iniReader.ReadString("Schlussel", "Y", ""));
|
|
schlussel[24].zeichen="Y";
|
|
schlussel[24].width=37,51;
|
|
schlussel[25].schl = atol(iniReader.ReadString("Schlussel", "Z", ""));
|
|
schlussel[25].zeichen="Z";
|
|
schlussel[25].width=41;
|
|
schlussel[26].schl = atol(iniReader.ReadString("Schlussel", "1", ""));
|
|
schlussel[26].zeichen="1";
|
|
schlussel[26].width=32.458;
|
|
schlussel[27].schl = atol(iniReader.ReadString("Schlussel", "2", ""));
|
|
schlussel[27].zeichen="2";
|
|
schlussel[27].width=32.458;
|
|
schlussel[28].schl = atol(iniReader.ReadString("Schlussel", "3", ""));
|
|
schlussel[28].zeichen="3";
|
|
schlussel[28].width=32.458;
|
|
schlussel[29].schl = atol(iniReader.ReadString("Schlussel", "4", ""));
|
|
schlussel[29].zeichen="4";
|
|
schlussel[29].width=32.458;
|
|
schlussel[30].schl = atol(iniReader.ReadString("Schlussel", "5", ""));
|
|
schlussel[30].zeichen="5";
|
|
schlussel[30].width=32.458;
|
|
schlussel[31].schl = atol(iniReader.ReadString("Schlussel", "6", ""));
|
|
schlussel[31].zeichen="6";
|
|
schlussel[31].width=32.458;
|
|
schlussel[32].schl = atol(iniReader.ReadString("Schlussel", "7", ""));
|
|
schlussel[32].zeichen="7";
|
|
schlussel[32].width=32.458;
|
|
schlussel[33].schl = atol(iniReader.ReadString("Schlussel", "8", ""));
|
|
schlussel[33].zeichen="8";
|
|
schlussel[33].width=32.458;
|
|
schlussel[34].schl = atol(iniReader.ReadString("Schlussel", "9", ""));
|
|
schlussel[34].zeichen="9";
|
|
schlussel[34].width=32.458;
|
|
schlussel[35].schl = atol(iniReader.ReadString("Schlussel", "0", ""));
|
|
schlussel[35].zeichen="0";
|
|
schlussel[35].width=32.458;
|
|
schlussel[36].schl = atol(iniReader.ReadString("Schlussel", ":", ""));
|
|
schlussel[36].zeichen=":";
|
|
schlussel[36].width=24.296;
|
|
|
|
|
|
}
|
|
/*
|
|
unsigned int ChatBotClass::CalcHash(SDL_Surface *surface, int xoff)
|
|
{ unsigned int ret = 0;
|
|
unsigned char r,b,g;
|
|
for (int y = 1; y < 18; y++)
|
|
{ for (int x = 0; x < 16; x++)
|
|
{ r = *((unsigned char*)surface->pixels + (xoff+x)*3 + y*surface->pitch);
|
|
g = *((unsigned char*)surface->pixels + (xoff+x)*3 + y*surface->pitch + 1);
|
|
b = *((unsigned char*)surface->pixels + (xoff+x)*3 + y*surface->pitch + 2);
|
|
bool first = ret&0x40000000;
|
|
ret<<=1;
|
|
ret |= first;
|
|
ret^=(r < 128 && g < 128 && b < 128)?1:0;
|
|
if (r < 128 && g < 128 && b < 128) printf("x"); else printf(".");
|
|
}
|
|
printf("\n");
|
|
}
|
|
return ret;
|
|
}
|
|
*/
|
|
int ChatBotClass::LadeDatei(char *datei,char *speichername) {
|
|
printf("Lade Datei: %s\n",datei);
|
|
|
|
SOCKET passSocket;
|
|
WORD sockVersion;
|
|
WSADATA wsaData;
|
|
int nret;
|
|
sockVersion = MAKEWORD(1, 1);
|
|
WSAStartup(sockVersion, &wsaData);
|
|
LPHOSTENT hostEntry;
|
|
// hostEntry = gethostbyname("chatcity.de"); // Specifying the server by its name;
|
|
if (!anonymize) hostEntry = gethostbyname("213.203.200.84");
|
|
else hostEntry = gethostbyname("http://www.waythru.com/index.php?q=213.203.200.84");
|
|
|
|
// another option is gethostbyaddr()
|
|
if (!hostEntry) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "gethostbyname()"); // Report the error as before
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
passSocket = socket(AF_INET, // Go over TCP/IP
|
|
SOCK_STREAM, // This is a stream-oriented socket
|
|
IPPROTO_TCP); // Use TCP rather than UDP
|
|
if (passSocket == INVALID_SOCKET) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "socket()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
SOCKADDR_IN serverInfo;
|
|
serverInfo.sin_family = AF_INET;
|
|
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // See the explanation in the tutorial
|
|
serverInfo.sin_port = htons(80); // Change to network-byte order and
|
|
nret = connect(passSocket,
|
|
(LPSOCKADDR)&serverInfo,
|
|
sizeof(struct sockaddr));
|
|
if (nret == SOCKET_ERROR) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "connect()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
// Send/receive, then cleanup:
|
|
|
|
char s[2000];
|
|
strcpy(s,"GET /securitycode/index.php?0.42204000+1194905347 HTTP/1.1\r\n");
|
|
strcat(s,"User-Agent: Opera/9.10 (Windows NT 5.1; U; en)\r\n");
|
|
strcat(s,"Host: chats.kunden.abacho.net\r\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n");
|
|
strcat(s,"Accept-Language: de-DE,de;q=0.9,en;q=0.8\r\n");
|
|
strcat(s,"Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n");
|
|
strcat(s,"Referer: http://home.chatcity.de/registrierung/\r\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\r\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\r\n");
|
|
strcat(s,"\r\n");
|
|
int nReadAmount=send(passSocket,s,strlen(s),0);
|
|
|
|
|
|
FILE *fd2;
|
|
fd2 = fopen (speichername, "w");
|
|
|
|
MString x;
|
|
char pBuffer[1024];
|
|
|
|
int y;
|
|
/* y=recv(passSocket,pBuffer,1024,0) {
|
|
fprintf (fd2,pBuffer);
|
|
printf("[%i][]\n",y);
|
|
Sleep(100);
|
|
// x+=pBuffer;
|
|
}
|
|
*/
|
|
/*
|
|
int v=1;
|
|
while(v!=15) {
|
|
for (int i=0;i<6048;i++) pBuffer[i]=0;
|
|
recv(passSocket,pBuffer,1024,0);
|
|
x+=pBuffer;
|
|
v++;
|
|
printf("%s\n",x.print());
|
|
printf("%i, %i\n",v,x.strlength());
|
|
}
|
|
*/
|
|
/*
|
|
FILE *fd2;
|
|
fd2 = fopen (speichername, "w");
|
|
fprintf (fd2,x.print());
|
|
*/
|
|
fclose(fd2);
|
|
|
|
closesocket(passSocket);
|
|
}
|
|
/*
|
|
ChatBotClass::ChatBotClass()
|
|
{
|
|
autokicknicksonsperrlist=0;
|
|
autoaddtosperrlistonspaming=0;
|
|
anonymize=0;
|
|
leseeigenenschrieb=1;
|
|
beepmyname=1;
|
|
rawtext=0;
|
|
floodpref1="";
|
|
floodpref2="";
|
|
seconds1=time(NULL);
|
|
readsperrliste();
|
|
readschlussel();
|
|
resendcheck=1;
|
|
}
|
|
*/
|
|
|
|
void ChatBotClass::Write2Log(char *name,char *text) {
|
|
time_t rawtime;
|
|
time ( &rawtime );
|
|
|
|
FILE *fd2;
|
|
fd2 = fopen (name, "a+");
|
|
// fprintf (fd2,ctime (&rawtime));
|
|
fprintf (fd2,text);
|
|
fprintf (fd2,"\n");
|
|
fclose(fd2);
|
|
}
|
|
|
|
/*
|
|
ChatBotClass::~ChatBotClass()
|
|
{
|
|
}
|
|
*/
|
|
|
|
void ChatBotClass::webpage() {
|
|
if (errorcode) return;
|
|
char *name;
|
|
FILE *fd2;
|
|
MString p;
|
|
name=(char*)malloc(255);
|
|
sprintf(name,"channel.htm");
|
|
if (NULL == (fd2 = fopen (name, "w")))
|
|
{
|
|
printf ("Can't open it ejecting!\n");
|
|
}
|
|
else
|
|
{
|
|
printf ("file erzeugt\n");
|
|
}
|
|
|
|
fprintf (fd2, "<HTML>\n %i\n",Nicknum);
|
|
fprintf (fd2, "<TABLE WIDTH=600>");
|
|
printf("ok\n");
|
|
for (int i=0;i<Nicknum;i++) {
|
|
if (i % 2 == 0)
|
|
fprintf (fd2, "<TR BGCOLOR=\"#FFE6FF\">");
|
|
else
|
|
fprintf (fd2, "<TR>");
|
|
fprintf (fd2,"<TD>name: %s<BR></TD><TD><IMG SRC=""http://www.chatcity.de/cgi-bin/cc1/eximg/wwb.cgi?NAME=%s""></TD></TR>\n",Nicks[i].print(),Nicks[i].print());
|
|
}
|
|
fprintf (fd2, "</TABLE>");
|
|
fprintf (fd2, "</HTML>\n");
|
|
fclose (fd2);
|
|
|
|
printf ("lade hoch\n");
|
|
/*
|
|
netbuf *nControl;
|
|
FtpInit ();
|
|
FtpConnect ("web7.webmailer.de", &nControl);
|
|
FtpLogin ("www.ph2.net", "abulafia", nControl);
|
|
// FtpChdir("Fragen", nControl);
|
|
FtpPut (name, name, FTPLIB_ASCII, nControl);
|
|
FtpQuit (nControl);
|
|
printf ("hochgeladen\n");
|
|
*/
|
|
}
|
|
|
|
|
|
int ChatBotClass::login(const char *name, char *pwd, char *chan) {
|
|
Write2Log("connectionlog.txt","Login\n");
|
|
isinsep=0;
|
|
peopleinsep=0;
|
|
seconds1=time(NULL);
|
|
aktivechannel=chan;
|
|
UserName=name;
|
|
Passwort=pwd;
|
|
GetIDandSID();
|
|
GetChatOut();
|
|
}
|
|
|
|
int ChatBotClass::login() {
|
|
peopleinsep=0;
|
|
isinsep=0;
|
|
GetIDandSID();
|
|
GetChatOut();
|
|
}
|
|
|
|
void ChatBotClass::Exit() {
|
|
WSACleanup();
|
|
}
|
|
|
|
void ChatBotClass::ReportError(int errorCodex, const char *whichFunc) {
|
|
Write2Log("connectionlog.txt","Error:\n");
|
|
sendlog.clear();
|
|
printf("sendlog cleared\n");
|
|
char errorMsg[92];
|
|
ZeroMemory(errorMsg, 92); // automatically NULL-terminate the string
|
|
sprintf(errorMsg, "SOCKETERROR: Call to %s returned error %d!", (char *)whichFunc, errorCodex);
|
|
Write2Log("connectionlog.txt",errorMsg);
|
|
ErrorMsg=errorMsg;
|
|
errorcode=errorCodex;
|
|
}
|
|
|
|
void ChatBotClass::readHTMLout(void (*pfi)(MString Text)) {
|
|
if (errorcode) return;
|
|
char pBuffer[6048];
|
|
MString Sender[40];
|
|
MString message[40];
|
|
MString col[40];
|
|
int flag[40];
|
|
MString packet;
|
|
for (int i=0;i<6048;i++) pBuffer[i]=0;
|
|
int len=recv(sendHTMLSocket,pBuffer,6048,0);
|
|
for (int i=0;((pBuffer!=""));i++) packet.concat(pBuffer[i]);
|
|
}
|
|
|
|
struct list_entry {
|
|
int sock;
|
|
struct list_entry *next;
|
|
};
|
|
|
|
struct list_type {
|
|
struct list_entry *data;
|
|
unsigned count;
|
|
};
|
|
|
|
|
|
void ChatBotClass::readchatline2(void (*pfi)(int fl, String col, String Sender, String Message)) {
|
|
printf("inreadchat\n");
|
|
|
|
printf("inreadchat\n");
|
|
if (errorcode) return;
|
|
printf("inreadchat\n");
|
|
char pBuffer[8000];
|
|
String Sender[40];
|
|
String message[40];
|
|
String col[40];
|
|
int flag[40];
|
|
MString packet;
|
|
|
|
for (int i=0;i<40;i++) {
|
|
col[i]="000000";
|
|
}
|
|
|
|
for (int i=0;i<8000;i++) pBuffer[i]=0;
|
|
|
|
unsigned long a[1];
|
|
a[1]=1;
|
|
int e = ioctlsocket(sendSocket, FIONBIO, a);
|
|
if (e == -1) {
|
|
errorcode=1;
|
|
printf("ioctlsocket failed\n");
|
|
}
|
|
|
|
int len = recv(sendSocket,pBuffer,8000,0);
|
|
if (len<0) {checksendlog();return;}
|
|
if (len==0) {
|
|
errorcode=1;
|
|
printf("len=0\n");
|
|
ReportError(999, "Zerolengthreturn");
|
|
}
|
|
|
|
for (int i=0;((pBuffer[i]!=(int)0));i++) packet.concat(pBuffer[i]);
|
|
printf("RAW[%s]\n",packet.print());
|
|
int mc=0;
|
|
|
|
if (packet.includes("Du bist eine gewisse Zeit des Chats verwiesen worden!</span></B>")) {
|
|
errorcode=1;ReportError(1000, "Du bist eine gewisse Zeit des Chats verwiesen worden");
|
|
}
|
|
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_female.gif\" width=\"15\" height=\"15\" border='0' title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_nosex.gif\" width=\"15\" height=\"15\" border='0' title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_male.gif\" width=\"15\" height=\"15\" border='0' title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_female.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_nosex.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_male.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<A HREF=\"#\" OnClick=\"oid('");
|
|
packet.erase("'); return false;\">");
|
|
|
|
packet.preconcat("<br>");
|
|
if (rawtext) { col[0]="000000";flag[0]=0;message[0]=packet.print();Sender[0]="RAW"; mc+=1;}
|
|
|
|
if ((!packet.includes("***newpage***"))) {
|
|
packet.replace("é","e");
|
|
packet.replace("á","a");
|
|
packet.replace("í","i");
|
|
packet.replace("ó","o");
|
|
packet.replace("ú","u");
|
|
packet.replace("ä","ä");
|
|
packet.replace("ü","ü");
|
|
packet.replace("ö","ö");
|
|
packet.replace("Ä","ä"); //wg. umlaute werden mit lowercase ncht in klein buchstaben verwandelt
|
|
packet.replace("Ü","ü");
|
|
packet.replace("Ö","ö");
|
|
packet.erase(" ");
|
|
packet.replace("<FONT SIZE=-1><BR>","<FONT SIZE=-1>");
|
|
packet.replace("<BR>\n<LI>","<LI>");
|
|
for (int i=0;i<40;i++) flag[i]=0;
|
|
int x=1;
|
|
MString ppacket;
|
|
do {
|
|
x++;
|
|
ppacket=packet.getbedfirst("<br>","<br>");
|
|
if (ppacket.found) goto ok;
|
|
ppacket=packet.getbedfirst("<BR>","<br>");
|
|
if (ppacket.found) goto ok;
|
|
ppacket=packet.getbedfirst("<br>","<BR>");
|
|
if (ppacket.found) goto ok;
|
|
ppacket=packet.getbedfirst("<BR>","<BR>");
|
|
if (ppacket.found) goto ok;
|
|
goto ok2;
|
|
ok:
|
|
|
|
packet.erase(0,4);
|
|
packet.erase(ppacket.print());
|
|
ppacket.concat("<br>");
|
|
//Normaler Chatschrieb
|
|
printf("%s\n",ppacket.print());
|
|
|
|
if (ppacket.includes("<!--91-->")) {
|
|
MString k;
|
|
k=ppacket.getbedfirst("<FONT COLOR=\"#","\"><B>");
|
|
col[mc]=k.print();
|
|
k=ppacket.getbedfirst("<B><!--91-->","</B></FONT>:");
|
|
Sender[mc]=k.print();
|
|
k=ppacket.getbedfirst("</B></FONT>: ","<br>");
|
|
message[mc]=k.print();
|
|
mc++;
|
|
}
|
|
|
|
//Du flüsterst zu ...
|
|
if (ppacket.includes("<!--94-->")) {
|
|
MString k;
|
|
col[mc]="000000";
|
|
k=ppacket.getbedfirst("<!--94-->","</I>:");
|
|
Sender[mc]=k.print();
|
|
k="Du fluesterst zu ";
|
|
k+=Sender[mc];
|
|
k+=":";
|
|
k+=ppacket.getbedfirst("</I>: ","<br>");
|
|
message[mc]=k.print();
|
|
Sender[mc]="---";
|
|
flag[mc]=4;
|
|
mc++;
|
|
}
|
|
//... flüstert ...
|
|
if (ppacket.includes("<!--93-->")) {
|
|
MString k;
|
|
col[mc]="000000";
|
|
k=ppacket.getbedfirst("<!--93-->","</B></font>");
|
|
Sender[mc]=k.print();
|
|
k=ppacket.getbedfirst("</u></I></FONT> ","<br>");
|
|
message[mc]=k.print();
|
|
flag[mc]=3;
|
|
mc++;
|
|
}
|
|
|
|
//me
|
|
if (ppacket.includes("<!--95-->")) {
|
|
MString k;
|
|
col[mc]="000000";
|
|
k=ppacket.getbedfirst("<!--95-->","</FONT><br>");
|
|
message[mc]=k.print();
|
|
Sender[mc]="...";
|
|
flag[mc]=4;
|
|
mc++;
|
|
}
|
|
|
|
printf("xx1\n");
|
|
|
|
//Bob Nachrichten, gemischtes
|
|
if (ppacket.includes("<!--0-->")) {
|
|
MString k;
|
|
k=ppacket.getbedfirst("<!--0-->MrBob: ","<br>");
|
|
|
|
|
|
if (k.includes("Du gehst in das Separee")) {
|
|
sepname=k.getbedfirst("Du gehst in das Separee ","<SCRIPT");
|
|
isinsep=1;
|
|
ChatterSepList.clearall();
|
|
}
|
|
|
|
if (k.includes("Du gehst in den Channel")) aktivechannel=k.getbedfirst("Du gehst in den Channel ","<SCRIPT");
|
|
|
|
if (k.includes("verlässt uns")) {
|
|
if (isinsep) {
|
|
peopleinsep--;
|
|
MString k;k=message[mc];k.erase(" verlässt uns");
|
|
ChatterSepList.RemoveChatter(k);
|
|
}
|
|
}
|
|
if (k.includes("verlässt das Separee"))
|
|
if (autokicknicksonsperrlist) {
|
|
MString k;k=message[mc];k.erase(" verlässt das Separee");
|
|
if (onsperrliste(k)) {message[mc]="Nick on Sperrlist left";}
|
|
ChatterSepList.RemoveChatter(k);
|
|
peopleinsep--;
|
|
} else {
|
|
MString k;k=message[mc];k.erase(" verlässt das Separee");
|
|
ChatterSepList.RemoveChatter(k);
|
|
peopleinsep--;
|
|
}
|
|
if (k.includes("meldet sich kurz ab")) {
|
|
MString k;k=message[mc];k.erase(" meldet sich kurz ab</B>");
|
|
k.erase("<B>");
|
|
if (isinsep) ChatterSepList.abmelden(k);
|
|
}
|
|
if (k.includes("ist wieder da.")) {
|
|
MString k;k=message[mc];k.erase(" ist wieder da.</B>");
|
|
k.erase("<B>");
|
|
if (isinsep) ChatterSepList.anmelden(k);
|
|
}
|
|
if (k.includes("ist im Augenblick abgemeldet")) {
|
|
MString k;k=message[mc];k.erase(" ist im Augenblick abgemeldet");
|
|
if (isinsep) ChatterSepList.abmelden(k);
|
|
}
|
|
if (k.includes("betritt das Separee")) {
|
|
if (autokicknicksonsperrlist) {
|
|
MString k;k=message[mc];k.erase(" betritt das Separee");
|
|
if (onsperrliste(k)) {MString x;x="/sepkick ";x+=k;say(x.print());message[mc]="Nick on Sperrlist joined";}
|
|
peopleinsep++;
|
|
ChatterSepList.AddChatter(k);
|
|
} else {
|
|
MString k;k=message[mc];k.erase(" betritt das Separee");
|
|
ChatterSepList.AddChatter(k);
|
|
peopleinsep++;
|
|
}
|
|
}
|
|
if (k.includes("Schwupp und raus aus dem Separee")) {
|
|
isinsep=0;
|
|
peopleinsep=0;
|
|
ChatterSepList.clearall();
|
|
}
|
|
k.erase("<SCRIPT LANGUAGE=JavaScript>setbgcol('#FFFFFF','#000000');</SCRIPT>");
|
|
k.erase("<SCRIPT LANGUAGE=JavaScript>setbgcol('#ffffff','#000000');</SCRIPT>");
|
|
k.erase("<SCRIPT LANGUAGE=JavaScript>setbgcol('#008000','#ffffff');</SCRIPT>");
|
|
k.erase("<!--72--><b><font color=\"#D24B4F\">");
|
|
k.erase("</font><script>fenster=window.open('http://home.chatcity.de/pages/gast.php',\"Gaeste\",'width=600,height=350');fenster.focus();</script>");
|
|
|
|
message[mc]=k.print();
|
|
Sender[mc]="Wenlok";
|
|
flag[mc]=1;
|
|
mc++;
|
|
|
|
}
|
|
printf("xx1\n");
|
|
//Userlist anzeigen
|
|
|
|
if (ppacket.includes("<!--92-->")) {
|
|
MString k;
|
|
k=ppacket.getbedfirst("<!--92-->","</B></FONT>");
|
|
k+=":\n";
|
|
k+=ppacket.getbedfirst("<FONT SIZE=-1>","</FONT></B><br>");
|
|
k.replace("<FONT COLOR=\"#800000\">","<B>");
|
|
k.replace("</FONT>","</B>");
|
|
k.replace("<LI>","\n");
|
|
// message[mc].replace("offen...","offen...\n");
|
|
Sender[mc]="Wenlok";
|
|
Nicks[0]=k.getbedfirst("[","]");
|
|
Nicknum=1;
|
|
do {
|
|
Nicks[Nicknum]=k.getbednext("[","]");
|
|
Nicknum++;
|
|
} while ((Nicks[Nicknum-1]!="")&&Nicknum<200);
|
|
message[mc]=k.print();
|
|
Nicknum--;
|
|
mc++;
|
|
//webpage();
|
|
}
|
|
|
|
} while (x<50);
|
|
printf("xx2\n");
|
|
ok2:
|
|
printf("HI");
|
|
|
|
for (int o=0;o<mc;o++) {
|
|
|
|
seconds1=time(NULL);
|
|
MString logp;
|
|
logp=Sender[o];
|
|
logp+=" ";
|
|
logp+=message[o];
|
|
Write2Log("ChatBotClasslog.txt",logp.print());
|
|
|
|
/*
|
|
message[o].replace("<b>","_");
|
|
message[o].replace("</b>","_");
|
|
message[o].replace("<B>","_");
|
|
message[o].replace("</B>","_");
|
|
message[o].replace("<I>","*");
|
|
message[o].replace("</I>","*");
|
|
message[o].replace(""","\"");
|
|
message[o].replace("ß","ß");
|
|
message[o].replace("<","<");
|
|
message[o].replace(">",">");
|
|
message[o].erase("⇒");
|
|
message[o].erase("⇐");
|
|
message[o].erase("‎");
|
|
message[o].erase("‏");
|
|
|
|
|
|
if (message[o].beginswith("!who")) {
|
|
ChatterSepList.printchatter();
|
|
}
|
|
if (message[o].beginswith("!botdata")) {
|
|
MString p;
|
|
p="conf:: ";
|
|
p+="isinsep:";
|
|
if (isinsep) {p+="1";p+=" sepname:";p+=sepname;} else p+="0";
|
|
if (isinsep) {p+=" peopleinsep:";p+=peopleinsep;}
|
|
p+=" channel:";
|
|
p+=aktivechannel;
|
|
p+=" isonline:";
|
|
if (isonline()) p+="1"; else p+="0";
|
|
p+=" name:";
|
|
p+=UserName;
|
|
p+=" autoaddtosperrlistonspaming:";
|
|
p+=autoaddtosperrlistonspaming;
|
|
p+=" autokicknicksonsperrlist:";
|
|
p+=autokicknicksonsperrlist;
|
|
say(p.print());
|
|
}
|
|
*/
|
|
if (message[o]=="!autoaddtosperrlistonspaming") autoaddtosperrlistonspaming=!autoaddtosperrlistonspaming;
|
|
if (message[o]=="!autokicknicksonsperrlist") autokicknicksonsperrlist=!autokicknicksonsperrlist;
|
|
/*
|
|
if (message[o].includes("automatisch") and Sender[o].includes("Wenlok") ){
|
|
say("/alive");
|
|
} else {
|
|
|
|
if (beepmyname) if (
|
|
(message[o].includes(UserName))&&
|
|
((!Sender[o].includes("Wenlok"))&&(!Sender[o].includes("RAW")))
|
|
) Beep(500,100);
|
|
|
|
//if ((Sender[o]==UserName)) delfromsendlog(message[o]);
|
|
*/
|
|
|
|
|
|
// if (!onsperrliste(Sender[o])) {
|
|
// if (autoaddtosperrlistonspaming) if ((Sender[o]!=UserName)) addtomessagelog(Sender[o],message[o]);
|
|
// printf("GOT[%i|%s|%s|%s]\n",flag[o],col[o].print(),Sender[o].print(),message[o].print());
|
|
if (!leseeigenenschrieb) { if ((Sender[o]!=UserName)) pfi(flag[o],col[o],Sender[o],message[o]);}
|
|
else pfi(flag[o],col[o],Sender[o],message[o]);
|
|
// }
|
|
|
|
//pfi(flag[o],col[o],Sender[o],message[o]);
|
|
|
|
|
|
}
|
|
|
|
}
|
|
// checksendlog();
|
|
|
|
|
|
}
|
|
|
|
void ChatBotClass::readchatline(void (*pfi)(int fl, MString col, MString Sender, MString Message)) {
|
|
printf("inreadchat\n");
|
|
|
|
printf("inreadchat\n");
|
|
if (errorcode) return;
|
|
printf("inreadchat\n");
|
|
char pBuffer[8000];
|
|
MString Sender[40];
|
|
MString message[40];
|
|
MString col[40];
|
|
int flag[40];
|
|
MString packet;
|
|
|
|
for (int i=0;i<8000;i++) pBuffer[i]=0;
|
|
|
|
unsigned long a[1];
|
|
a[1]=1;
|
|
int e = ioctlsocket(sendSocket, FIONBIO, a);
|
|
if (e == -1) {
|
|
errorcode=1;
|
|
printf("ioctlsocket failed\n");
|
|
}
|
|
|
|
int len = recv(sendSocket,pBuffer,8000,0);
|
|
if (len<0) {checksendlog();return;}
|
|
if (len==0) {
|
|
errorcode=1;
|
|
printf("len=0\n");
|
|
ReportError(999, "Zerolengthreturn");
|
|
}
|
|
|
|
for (int i=0;((pBuffer[i]!=(int)0));i++) packet.concat(pBuffer[i]);
|
|
printf("RAW[%s]\n",packet.print());
|
|
int mc=0;
|
|
|
|
if (packet.includes("Du bist eine gewisse Zeit des Chats verwiesen worden!</span></B>")) {
|
|
errorcode=1;ReportError(1000, "Du bist eine gewisse Zeit des Chats verwiesen worden");
|
|
}
|
|
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_female.gif\" width=\"15\" height=\"15\" border='0' title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_nosex.gif\" width=\"15\" height=\"15\" border='0' title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_male.gif\" width=\"15\" height=\"15\" border='0' title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_female.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_nosex.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<img src=\"http://213.203.200.54/cc1/images/cc_icon_male.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"ID-Card des Chatters\"></a>");
|
|
packet.erase("<A HREF=\"#\" OnClick=\"oid('");
|
|
packet.erase("'); return false;\">");
|
|
|
|
// for (int i=0;i<len;i++) printf("%c",packet.str[i]);
|
|
packet.preconcat("<br>");
|
|
if (rawtext) { col[0]="000000";flag[0]=0;message[0]=packet;Sender[0]="RAW"; mc+=1;
|
|
}
|
|
|
|
if ((!packet.includes("***newpage***"))) {
|
|
packet.replace("é","e");
|
|
packet.replace("á","a");
|
|
packet.replace("í","i");
|
|
packet.replace("ó","o");
|
|
packet.replace("ú","u");
|
|
packet.replace("ä","ä");
|
|
packet.replace("ü","ü");
|
|
packet.replace("ö","ö");
|
|
packet.replace("Ä","ä"); //wg. umlaute werden mit lowercase ncht in klein buchstaben verwandelt
|
|
packet.replace("Ü","ü");
|
|
packet.replace("Ö","ö");
|
|
packet.erase(" ");
|
|
packet.replace("<FONT SIZE=-1><BR>","<FONT SIZE=-1>");
|
|
packet.replace("<BR>\n<LI>","<LI>");
|
|
|
|
for (int i=0;i<40;i++) flag[i]=0;
|
|
|
|
|
|
int x=1;
|
|
MString ppacket;
|
|
|
|
/*
|
|
do {
|
|
x++;
|
|
ppacket=packet.getbedfirst("<br>","<br>");
|
|
if (ppacket.found) goto ok;
|
|
ppacket=packet.getbedfirst("<BR>","<br>");
|
|
if (ppacket.found) goto ok;
|
|
ppacket=packet.getbedfirst("<br>","<BR>");
|
|
if (ppacket.found) goto ok;
|
|
ppacket=packet.getbedfirst("<BR>","<BR>");
|
|
if (ppacket.found) goto ok;
|
|
goto ok2;
|
|
ok:
|
|
packet.erase(0,4);
|
|
packet.erase(ppacket.print());
|
|
ppacket.concat("<br>");
|
|
//Normaler Chatschrieb
|
|
|
|
if (ppacket.includes("<!--91-->")) {
|
|
// printf("habs %s\n",packet.print());
|
|
col[mc]=ppacket.getbedfirst("<FONT COLOR=\"#","\"><B>");
|
|
Sender[mc]=ppacket.getbedfirst("<B><!--91-->","</B></FONT>:");
|
|
message[mc]=ppacket.getbedfirst("</B></FONT>: ","<br>");
|
|
mc++;
|
|
}
|
|
//Du flüsterst zu ...
|
|
if (ppacket.includes("<!--94-->")) {
|
|
col[mc]="000000";
|
|
Sender[mc]=ppacket.getbedfirst("<!--94-->","</I>:");
|
|
message[mc]="Du flüsterst zu ";
|
|
message[mc]+=Sender[mc].print();
|
|
message[mc]+=":";
|
|
message[mc]+=ppacket.getbedfirst("</I>: ","<br>");
|
|
Sender[mc]="---";
|
|
flag[mc]=4;
|
|
mc++;
|
|
}
|
|
//... flüstert ...
|
|
if (ppacket.includes("<!--93-->")) {
|
|
Sender[mc]=ppacket.getbedfirst("<!--93-->","</B></font>");
|
|
message[mc]=ppacket.getbedfirst("</u></I></FONT> ","<br>");
|
|
flag[mc]=3;
|
|
mc++;
|
|
}
|
|
//me
|
|
if (ppacket.includes("<!--95-->")) {
|
|
message[mc]=ppacket.getbedfirst("<!--95-->","</FONT><br>");
|
|
Sender[mc]="...";
|
|
flag[mc]=4;
|
|
mc++;
|
|
}
|
|
//Bob Nachrichten, gemischtes
|
|
if (ppacket.includes("<!--0-->")) {
|
|
message[mc]=ppacket.getbedfirst("<!--0-->MrBob: ","<br>");
|
|
if (message[mc].includes("Du gehst in das Separee")) {
|
|
sepname=message[mc].getbedfirst("Du gehst in das Separee ","<SCRIPT");
|
|
isinsep=1;
|
|
ChatterSepList.clearall();
|
|
}
|
|
if (message[mc].includes("Du gehst in den Channel")) aktivechannel=message[mc].getbedfirst("Du gehst in den Channel ","<SCRIPT");
|
|
|
|
if (message[mc].includes("verlässt uns")) {
|
|
if (isinsep) {
|
|
peopleinsep--;
|
|
MString k;k=message[mc];k.erase(" verlässt uns");
|
|
ChatterSepList.RemoveChatter(k);
|
|
}
|
|
}
|
|
if (message[mc].includes("verlässt das Separee"))
|
|
if (autokicknicksonsperrlist) {
|
|
MString k;k=message[mc];k.erase(" verlässt das Separee");
|
|
if (onsperrliste(k)) {message[mc]="Nick on Sperrlist left";}
|
|
ChatterSepList.RemoveChatter(k);
|
|
peopleinsep--;
|
|
} else {
|
|
MString k;k=message[mc];k.erase(" verlässt das Separee");
|
|
ChatterSepList.RemoveChatter(k);
|
|
peopleinsep--;
|
|
}
|
|
if (message[mc].includes("meldet sich kurz ab")) {
|
|
MString k;k=message[mc];k.erase(" meldet sich kurz ab</B>");
|
|
k.erase("<B>");
|
|
if (isinsep) ChatterSepList.abmelden(k);
|
|
}
|
|
if (message[mc].includes("ist wieder da.")) {
|
|
MString k;k=message[mc];k.erase(" ist wieder da.</B>");
|
|
k.erase("<B>");
|
|
if (isinsep) ChatterSepList.anmelden(k);
|
|
}
|
|
|
|
if (message[mc].includes("ist im Augenblick abgemeldet")) {
|
|
MString k;k=message[mc];k.erase(" ist im Augenblick abgemeldet");
|
|
if (isinsep) ChatterSepList.abmelden(k);
|
|
}
|
|
if (message[mc].includes("betritt das Separee")) {
|
|
if (autokicknicksonsperrlist) {
|
|
MString k;k=message[mc];k.erase(" betritt das Separee");
|
|
if (onsperrliste(k)) {MString x;x="/sepkick ";x+=k;say(x.print());message[mc]="Nick on Sperrlist joined";}
|
|
peopleinsep++;
|
|
ChatterSepList.AddChatter(k);
|
|
} else {
|
|
MString k;k=message[mc];k.erase(" betritt das Separee");
|
|
ChatterSepList.AddChatter(k);
|
|
peopleinsep++;
|
|
}
|
|
}
|
|
if (message[mc].includes("Schwupp und raus aus dem Separee")) {
|
|
isinsep=0;
|
|
peopleinsep=0;
|
|
ChatterSepList.clearall();
|
|
}
|
|
message[mc].erase("<SCRIPT LANGUAGE=JavaScript>setbgcol('#FFFFFF','#000000');</SCRIPT>");
|
|
message[mc].erase("<SCRIPT LANGUAGE=JavaScript>setbgcol('#ffffff','#000000');</SCRIPT>");
|
|
message[mc].erase("<SCRIPT LANGUAGE=JavaScript>setbgcol('#008000','#ffffff');</SCRIPT>");
|
|
message[mc].erase("<!--72--><b><font color=\"#D24B4F\">");
|
|
message[mc].erase("</font><script>fenster=window.open('http://home.chatcity.de/pages/gast.php',\"Gaeste\",'width=600,height=350');fenster.focus();</script>");
|
|
Sender[mc]="Wenlok";
|
|
flag[mc]=1;
|
|
mc++;
|
|
}
|
|
//Userlist anzeigen
|
|
if (ppacket.includes("<!--92-->")) {
|
|
message[mc]=ppacket.getbedfirst("<!--92-->","</B></FONT>");
|
|
message[mc]+=":\n";
|
|
message[mc]+=ppacket.getbedfirst("<FONT SIZE=-1>","</FONT></B><br>");
|
|
message[mc].replace("<FONT COLOR=\"#800000\">","<B>");
|
|
message[mc].replace("</FONT>","</B>");
|
|
message[mc].replace("<LI>","\n");
|
|
// message[mc].replace("offen...","offen...\n");
|
|
Sender[mc]="Wenlok";
|
|
Nicks[0]=message[mc].getbedfirst("[","]");
|
|
Nicknum=1;
|
|
do {
|
|
Nicks[Nicknum]=message[mc].getbednext("[","]");
|
|
Nicknum++;
|
|
} while ((Nicks[Nicknum-1]!="")&&Nicknum<200);
|
|
Nicknum--;
|
|
mc++;
|
|
webpage();
|
|
}
|
|
} while (x<50);
|
|
|
|
if (x>20) Write2Log("debuglog.txt","x>20 in function readchatline\n");
|
|
*/
|
|
ok2:
|
|
for (int o=0;o<mc;o++) {
|
|
seconds1=time(NULL);
|
|
MString logp;
|
|
logp=Sender[o];
|
|
logp+=" ";
|
|
logp+=message[o];
|
|
Write2Log("ChatBotClasslog.txt",logp.print());
|
|
|
|
message[o].replace("<b>","_");
|
|
message[o].replace("</b>","_");
|
|
message[o].replace("<B>","_");
|
|
message[o].replace("</B>","_");
|
|
message[o].replace("<I>","*");
|
|
message[o].replace("</I>","*");
|
|
message[o].replace(""","\"");
|
|
message[o].replace("ß","ß");
|
|
message[o].replace("<","<");
|
|
message[o].replace(">",">");
|
|
message[o].erase("⇒");
|
|
message[o].erase("⇐");
|
|
message[o].erase("‎");
|
|
message[o].erase("‏");
|
|
|
|
|
|
if (message[o].beginswith("!who")) {
|
|
ChatterSepList.printchatter();
|
|
}
|
|
if (message[o].beginswith("!botdata")) {
|
|
MString p;
|
|
p="conf:: ";
|
|
p+="isinsep:";
|
|
if (isinsep) {p+="1";p+=" sepname:";p+=sepname;} else p+="0";
|
|
if (isinsep) {p+=" peopleinsep:";p+=peopleinsep;}
|
|
p+=" channel:";
|
|
p+=aktivechannel;
|
|
p+=" isonline:";
|
|
if (isonline()) p+="1"; else p+="0";
|
|
p+=" name:";
|
|
p+=UserName;
|
|
p+=" autoaddtosperrlistonspaming:";
|
|
p+=autoaddtosperrlistonspaming;
|
|
p+=" autokicknicksonsperrlist:";
|
|
p+=autokicknicksonsperrlist;
|
|
say(p.print());
|
|
}
|
|
|
|
if (message[o]=="!autoaddtosperrlistonspaming") autoaddtosperrlistonspaming=!autoaddtosperrlistonspaming;
|
|
if (message[o]=="!autokicknicksonsperrlist") autokicknicksonsperrlist=!autokicknicksonsperrlist;
|
|
|
|
if (message[o].includes("automatisch") && Sender[o].includes("Wenlok") ){
|
|
say("/alive");
|
|
} else {
|
|
|
|
if (beepmyname) if (
|
|
(message[o].includes(UserName))&&
|
|
((!Sender[o].includes("Wenlok"))&&(!Sender[o].includes("RAW")))
|
|
) Beep(500,100);
|
|
|
|
//if ((Sender[o]==UserName)) delfromsendlog(message[o]);
|
|
/*
|
|
if (!onsperrliste(Sender[o])) {
|
|
if (autoaddtosperrlistonspaming) if ((Sender[o]!=UserName)) addtomessagelog(Sender[o],message[o]);
|
|
printf("GOT[%i|%s|%s|%s]\n",flag[o],col[o].print(),Sender[o].print(),message[o].print());
|
|
if (!leseeigenenschrieb) { if ((Sender[o]!=UserName)) pfi(flag[o],col[o],Sender[o],message[o]);}
|
|
else pfi(flag[o],col[o],Sender[o],message[o]);
|
|
}
|
|
*/
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
// checksendlog();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int ChatBotClass::GetChatOut() {
|
|
if(errorcode) return(1);
|
|
WORD sockVersion;
|
|
WSADATA wsaData;
|
|
int nret;
|
|
sockVersion = MAKEWORD(1, 1);
|
|
WSAStartup(sockVersion, &wsaData);
|
|
LPHOSTENT hostEntry;
|
|
printf("gettin chatout\n");
|
|
if (!anonymize) hostEntry = gethostbyname("213.203.200.72");
|
|
else hostEntry = gethostbyname("http://www.waythru.com/index.php?q=http://213.203.200.72");
|
|
printf("endgetcahtout\n");
|
|
if (!hostEntry) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "gethostbyname()"); // Report the error as before
|
|
printf("ERROR\n");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
sendSocket = socket(AF_INET, // Go over TCP/IP
|
|
SOCK_STREAM, // This is a stream-oriented socket
|
|
IPPROTO_TCP); // Use TCP rather than UDP
|
|
|
|
if (sendSocket == INVALID_SOCKET) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "socket()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
printf("endgetcahtout\n");
|
|
SOCKADDR_IN serverInfo;
|
|
serverInfo.sin_family = AF_INET;
|
|
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // See the explanation in the tutorial
|
|
serverInfo.sin_port = htons(80); // Change to network-byte order and
|
|
nret = connect(sendSocket,
|
|
(LPSOCKADDR)&serverInfo,
|
|
sizeof(struct sockaddr));
|
|
|
|
if (nret == SOCKET_ERROR) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "connect()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
char s[3000];
|
|
strcpy(s,"GET /chatout?MODE=1048576&CHANNEL=");
|
|
strcat(s,aktivechannel.print());
|
|
strcat(s,"&PROVIDER=REG&NICKNAME=");
|
|
strcat(s,UserName);
|
|
strcat(s,"&PW=");
|
|
strcat(s,PW.print());
|
|
strcat(s,"&SID=");
|
|
strcat(s,Sid.print());
|
|
strcat(s,"&ID=");
|
|
strcat(s,ID.print());
|
|
strcat(s,"&KEY=");
|
|
strcat(s,"258");
|
|
strcat(s,"&SBG=1 HTTP/1.1\n");
|
|
strcat(s,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.51\n");
|
|
strcat(s,"Host: 213.203.200.72\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\n");
|
|
strcat(s,"Accept-Language: en\n");
|
|
strcat(s,"Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\n");
|
|
strcat(s,"Referer: http://www.chatcity.de/cgi-bin/cc2005/wwb/wwb.cgi\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\n\n\n");
|
|
int nReadAmount=send(sendSocket,s,strlen(s),0);
|
|
printf("endgetcahtout\n");
|
|
}
|
|
|
|
int ChatBotClass::say(char *textin) {
|
|
if (textin!="") {
|
|
//Write2Log("ChatBotClasslog.txt",textin);
|
|
// printf("in say\n");
|
|
if (errorcode) return(1);
|
|
//split long messages
|
|
MString msgs[20];
|
|
MString buf;
|
|
buf=textin;
|
|
|
|
int counter=0;
|
|
for (int i=0;((i<1+(int)(buf.strlength()/MessageSplitLength))&&(counter<20));i++) {
|
|
// printf("%i\n",i);
|
|
msgs[i]=buf.copy(MessageSplitLength,i*MessageSplitLength);
|
|
// printf("%s\n",msgs[i].print());
|
|
counter++;
|
|
}
|
|
// printf("ok\n");
|
|
for (int u=0;u<counter;u++) {
|
|
MString st;
|
|
st=msgs[u].print();
|
|
|
|
if ((st==floodpref1)&&(st==floodpref2)&&(!floodpref2.includes("/alive"))) {
|
|
printf("flooding: %s\n",st.print());
|
|
floodpref2=floodpref1;
|
|
floodpref1=st;
|
|
st+=" ";
|
|
//goto fertig;
|
|
} else {
|
|
floodpref2=floodpref1;
|
|
floodpref1=st;
|
|
}
|
|
|
|
printf("SEND[%s]\n",st.print());
|
|
if (resendcheck) addtosendlog(st);
|
|
st.replace("%","%25");
|
|
st.replace(" ","+");
|
|
st.replace("?","%3F");
|
|
st.replace("&","%26");
|
|
st.replace(":","%3A");
|
|
// st.replace("PROZENTZEICHEN","%25");
|
|
char s[3000]="";
|
|
|
|
|
|
strcpy(s,"GET /chatin?ID=");
|
|
strcat(s,ID.print());
|
|
strcat(s,"&SID=");
|
|
strcat(s,Sid.print());
|
|
strcat(s,"&OUT=");
|
|
strcat(s,st.print());
|
|
strcat(s," HTTP/1.1\n");
|
|
strcat(s,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.51\n");
|
|
strcat(s,"Host: 213.203.200.72\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\n");
|
|
strcat(s,"Accept-Language: en\n");
|
|
strcat(s,"Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\n");
|
|
strcat(s,"Referer: http://213.203.200.72:80/html?PAGE=chat_in1.html&NICKNAME=");
|
|
strcat(s,UserName);
|
|
strcat(s,"&SID=");
|
|
strcat(s,Sid.print());
|
|
strcat(s,"&ID=");
|
|
strcat(s,ID.print());
|
|
strcat(s,"&PW=");
|
|
strcat(s,PW.print());
|
|
strcat(s,"\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\n\n\n");
|
|
strcat(s,UserName);
|
|
strcat(s,"&SID=");
|
|
strcat(s,Sid.print());
|
|
strcat(s,"&ID=");
|
|
strcat(s,ID.print());
|
|
|
|
WORD sockVersion;
|
|
WSADATA wsaData;
|
|
int nret;
|
|
sockVersion = MAKEWORD(1, 1);
|
|
WSAStartup(sockVersion, &wsaData);
|
|
LPHOSTENT hostEntry;
|
|
|
|
if (!anonymize) hostEntry = gethostbyname("213.203.200.72");
|
|
else hostEntry = gethostbyname("http://www.waythru.com/index.php?q=http://213.203.200.72");
|
|
|
|
if (!hostEntry) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "gethostbyname()"); // Report the error as before
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
SOCKET sendSocket;
|
|
sendSocket = socket(AF_INET, // Go over TCP/IP
|
|
SOCK_STREAM, // This is a stream-oriented socket
|
|
IPPROTO_TCP); // Use TCP rather than UDP
|
|
if (sendSocket == INVALID_SOCKET) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "socket()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
SOCKADDR_IN serverInfo;
|
|
serverInfo.sin_family = AF_INET;
|
|
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // See the explanation in the tutorial
|
|
serverInfo.sin_port = htons(80); // Change to network-byte order and
|
|
nret = connect(sendSocket,
|
|
(LPSOCKADDR)&serverInfo,
|
|
sizeof(struct sockaddr));
|
|
|
|
if (nret == SOCKET_ERROR) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "connect()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
send(sendSocket,s,strlen(s),0);
|
|
closesocket(sendSocket);
|
|
fertig:
|
|
int v=0;
|
|
}
|
|
}
|
|
// printf(" say raus\n");
|
|
}
|
|
|
|
|
|
int ChatBotClass::GetIDandSID() {
|
|
if (errorcode) return(1);
|
|
SOCKET passSocket;
|
|
WORD sockVersion;
|
|
WSADATA wsaData;
|
|
int nret;
|
|
sockVersion = MAKEWORD(1, 1);
|
|
WSAStartup(sockVersion, &wsaData);
|
|
LPHOSTENT hostEntry;
|
|
printf("gettin id and sid\n");
|
|
// hostEntry = gethostbyname("chatcity.de"); // Specifying the server by its name;
|
|
|
|
if (!anonymize) hostEntry = gethostbyname("213.203.200.70");
|
|
else hostEntry = gethostbyname("http://www.waythru.com/index.php?q=http://213.203.200.70");
|
|
|
|
// another option is gethostbyaddr()
|
|
if (!hostEntry) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "gethostbyname()"); // Report the error as before
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
passSocket = socket(AF_INET, // Go over TCP/IP
|
|
SOCK_STREAM, // This is a stream-oriented socket
|
|
IPPROTO_TCP); // Use TCP rather than UDP
|
|
if (passSocket == INVALID_SOCKET) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "socket()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
SOCKADDR_IN serverInfo;
|
|
serverInfo.sin_family = AF_INET;
|
|
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // See the explanation in the tutorial
|
|
serverInfo.sin_port = htons(80); // Change to network-byte order and
|
|
nret = connect(passSocket,
|
|
(LPSOCKADDR)&serverInfo,
|
|
sizeof(struct sockaddr));
|
|
if (nret == SOCKET_ERROR) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "connect()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
// Send/receive, then cleanup:
|
|
MString contentlenght;
|
|
contentlenght+=113-20+strlen(UserName)+aktivechannel.strlength();
|
|
|
|
char s[2000];
|
|
strcpy(s,"POST /cgi-bin/cc2005/wwb/wwb.cgi HTTP/1.1\n");
|
|
strcat(s,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.51\n");
|
|
strcat(s,"Host: www.chatcity.de\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\n");
|
|
strcat(s,"Accept-Language: en\n");
|
|
strcat(s,"Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\n");
|
|
strcat(s,"Referer: http://home.chatcity.de/pages/bereich3.php\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\n");
|
|
strcat(s,"Content-Type: application/x-www-form-urlencoded\n");
|
|
strcat(s,"Content-Length: ");
|
|
strcat(s,contentlenght.print());
|
|
strcat(s,"\n\n");
|
|
strcat(s,"_CID=login%2Flo&PROVIDER=REG&KEY=258&MODE=1048576");
|
|
strcat(s,"&NAME=");
|
|
strcat(s,UserName);
|
|
strcat(s,"&PW=");
|
|
strcat(s,Passwort);
|
|
strcat(s,"&CHANNEL=");
|
|
strcat(s,aktivechannel.print());
|
|
strcat(s,"&Chat=+++++Chatten+++++");
|
|
|
|
int nReadAmount=send(passSocket,s,strlen(s),0);
|
|
MString x;
|
|
MString XSID;
|
|
MString XID;
|
|
MString XPW;
|
|
MString XKEY;
|
|
char pBuffer[6048];
|
|
int v=1;
|
|
while(v!=15) {
|
|
for (int i=0;i<6048;i++) pBuffer[i]=0;
|
|
recv(passSocket,pBuffer,1048,0);
|
|
x=pBuffer;
|
|
XSID="";XID="";
|
|
XSID=x.getbedfirst("&SID=","&ID=");
|
|
XID=x.getbedfirst("&ID=","&KEY=");
|
|
XPW=x.getbedfirst("&PW=","&SID=");
|
|
XKEY=x.getbedfirst("&KEY=","&SBG=");
|
|
if ((XSID!="")&&(XID!="")&&(XPW!="")) break;
|
|
v++;
|
|
}
|
|
if ((XSID!="")&&(XID!="")&&(XPW!="")) {
|
|
printf("Erfolg: SID=%s ID=%s PW=%s KEY=%s\n",XSID.print(),XID.print(),XPW.print(),XKEY.print());
|
|
} else {
|
|
printf("Konnte keine ID/SID bekommen\n");}
|
|
Sid=XSID.print();
|
|
ID=XID.print();
|
|
PW=XPW.print();
|
|
KEY=XKEY.print();
|
|
closesocket(passSocket);
|
|
}
|
|
|
|
int ChatBotClass::getregistrationform() {
|
|
SOCKET passSocket;
|
|
WORD sockVersion;
|
|
WSADATA wsaData;
|
|
int nret;
|
|
sockVersion = MAKEWORD(1, 1);
|
|
WSAStartup(sockVersion, &wsaData);
|
|
LPHOSTENT hostEntry;
|
|
printf("gettin regform\n");
|
|
|
|
if (!anonymize) hostEntry = gethostbyname("213.203.200.2");
|
|
else hostEntry = gethostbyname("http://www.waythru.com/index.php?q=http://213.203.200.2");
|
|
|
|
if (!hostEntry) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "gethostbyname()"); // Report the error as before
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
passSocket = socket(AF_INET, // Go over TCP/IP
|
|
SOCK_STREAM, // This is a stream-oriented socket
|
|
IPPROTO_TCP); // Use TCP rather than UDP
|
|
if (passSocket == INVALID_SOCKET) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "socket()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
SOCKADDR_IN serverInfo;
|
|
serverInfo.sin_family = AF_INET;
|
|
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // See the explanation in the tutorial
|
|
serverInfo.sin_port = htons(80); // Change to network-byte order and
|
|
nret = connect(passSocket,
|
|
(LPSOCKADDR)&serverInfo,
|
|
sizeof(struct sockaddr));
|
|
if (nret == SOCKET_ERROR) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "connect()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
// Send/receive, then cleanup:
|
|
|
|
char s[2000];
|
|
|
|
strcpy(s,"GET /registrierung/ HTTP/1.1\r\n");
|
|
strcat(s,"User-Agent: Opera/9.10 (Windows NT 5.1; U; en)\r\n");
|
|
strcat(s,"Host: home.chatcity.de\r\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n");
|
|
strcat(s,"Accept-Language: de-DE,de;q=0.9,en;q=0.8\r\n");
|
|
strcat(s,"Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n");
|
|
strcat(s,"Cookie: POPUPCHECK=1194890296737\r\n");
|
|
strcat(s,"Cookie2: $Version=1\r\n");
|
|
strcat(s,"Cache-Control: no-cache\r\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\r\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\r\n");
|
|
strcat(s,"\r\n");
|
|
|
|
int nReadAmount=send(passSocket,s,strlen(s),0);
|
|
|
|
MString x;
|
|
MString Bild;
|
|
char pBuffer[26048];
|
|
int v=1;
|
|
while(v!=55) {
|
|
for (int i=0;i<6048;i++) pBuffer[i]=0;
|
|
recv(passSocket,pBuffer,1412,0);
|
|
x=pBuffer;
|
|
if (x.includes("securitycode")) {
|
|
Bild=x.getbedfirst("securitycode/index.php?","\" width=\"80\"");
|
|
printf("gefunden\n");goto fertig;
|
|
}
|
|
v++;
|
|
}
|
|
fertig:
|
|
MString Bildadr;
|
|
Bildadr="wget -nd -r http://chats.kunden.abacho.net/securitycode/index.php?";
|
|
Bildadr+=Bild.print();
|
|
Bildadr+=" -O index.php";
|
|
closesocket(passSocket);
|
|
printf("%s\n",Bildadr.print());
|
|
system(Bildadr.print());
|
|
// SDL_Surface *image;
|
|
// image=IMG_Load("index.php");
|
|
unsigned int hash;
|
|
|
|
for (int i=0;i<5;i++) {
|
|
// c2[i]=CalcHash(image,i*16);
|
|
}
|
|
for (int i=0;i<5;i++) printf(">>%u\n",c2[i]);
|
|
|
|
system("del index.php");
|
|
// SDL_UnlockSurface(image);
|
|
}
|
|
|
|
int ChatBotClass::registername(char *nickname, char *pwd, char *email) {
|
|
readschlussel();
|
|
for (int i=0;i<5;i++) {
|
|
for (int l=0;l<35;l++) {
|
|
if (c2[i]==schlussel[l].schl) {
|
|
printf("%s",schlussel[l].zeichen.print());
|
|
checkcode=checkcode+schlussel[l].zeichen.print();
|
|
}
|
|
}
|
|
}
|
|
printf("\n");
|
|
|
|
SOCKET passSocket;
|
|
WORD sockVersion;
|
|
WSADATA wsaData;
|
|
int nret;
|
|
sockVersion = MAKEWORD(1, 1);
|
|
WSAStartup(sockVersion, &wsaData);
|
|
LPHOSTENT hostEntry;
|
|
printf("register name\n");
|
|
|
|
if (!anonymize) hostEntry = gethostbyname("213.203.200.2");
|
|
else hostEntry = gethostbyname("http://www.waythru.com/index.php?q=http://213.203.200.2");
|
|
|
|
// another option is gethostbyaddr()
|
|
if (!hostEntry) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "gethostbyname()"); // Report the error as before
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
passSocket = socket(AF_INET, // Go over TCP/IP
|
|
SOCK_STREAM, // This is a stream-oriented socket
|
|
IPPROTO_TCP); // Use TCP rather than UDP
|
|
if (passSocket == INVALID_SOCKET) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "socket()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
|
|
SOCKADDR_IN serverInfo;
|
|
serverInfo.sin_family = AF_INET;
|
|
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); // See the explanation in the tutorial
|
|
serverInfo.sin_port = htons(80); // Change to network-byte order and
|
|
nret = connect(passSocket,
|
|
(LPSOCKADDR)&serverInfo,
|
|
sizeof(struct sockaddr));
|
|
if (nret == SOCKET_ERROR) {
|
|
nret = WSAGetLastError();
|
|
ReportError(nret, "connect()");
|
|
WSACleanup();
|
|
return NETWORK_ERROR;
|
|
}
|
|
// Send/receive, then cleanup:
|
|
|
|
|
|
char s[20000];
|
|
|
|
strcpy(s,"POST /registrierung/ HTTP/1.1\r\n");
|
|
strcat(s,"User-Agent: Opera/9.10 (Windows NT 5.1; U; en)\r\n");
|
|
strcat(s,"Host: home.chatcity.de\r\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n");
|
|
strcat(s,"Accept-Language: de-DE,de;q=0.9,en;q=0.8\r\n");
|
|
strcat(s,"Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n");
|
|
strcat(s,"Referer: http://home.chatcity.de/registrierung/\r\n");
|
|
strcat(s,"Cookie: POPUPCHECK=1194890296737\r\n");
|
|
strcat(s,"Cookie2: $Version=1\r\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\r\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\r\n");
|
|
strcat(s,"Content-Length: 468\r\n");
|
|
strcat(s,"Content-Type: application/x-www-form-urlencoded\r\n");
|
|
strcat(s,"\r\n");
|
|
|
|
MString securecode;
|
|
securecode=checkcode.print();;
|
|
|
|
// cmd=login&nickname=Schnee8876&pwd1=mdykoz&pwd2=mdykoz&email1=chochmah%40gmx.net&email2=chochmah%40gmx.net&securecode=NG979&newsletter=1&gender=1&showgender=1&get_datum_tag=09&get_datum_monat=05&get_datum_jahr=1981&plz=&wohnort=&id_card=1&m
|
|
strcat(s,"cmd=login&nickname=");
|
|
strcat(s,nickname);
|
|
strcat(s,"&pwd1=");
|
|
strcat(s,pwd);
|
|
strcat(s,"&pwd2=");
|
|
strcat(s,pwd);
|
|
strcat(s,"&email1=");
|
|
strcat(s,email);
|
|
// email //email @ als %40
|
|
strcat(s,"&email2=");
|
|
strcat(s,email);
|
|
strcat(s,"&securecode=");
|
|
strcat(s,securecode.print());
|
|
strcat(s,"&newsletter=1&gender=1&showgender=1&get_datum_tag=09&get_datum_monat=05&get_datum_jahr=1981&plz=&wohnort=&id_card=1&motto=&img_idcard=http%3A%2F%2F&hobby=&interessen=&buecher=&filme=&fernsehsendungen=&musik=&sprachen=&ichsuche=&homepage=&essen=&reiseziel=&getraenke=&tier=&cc=%23000000&sc=%23FFFFFF&system_msg=1&agb=1&agbsubmit=+++registrieren+++");
|
|
|
|
|
|
int nReadAmount=send(passSocket,s,strlen(s),0);
|
|
printf("%s %i\n",s,nReadAmount);
|
|
|
|
|
|
strcpy(s,"GET /registrierung/register.php HTTP/1.1\r\n");
|
|
strcat(s,"User-Agent: Opera/9.10 (Windows NT 5.1; U; en)\r\n");
|
|
strcat(s,"Host: home.chatcity.de\r\n");
|
|
strcat(s,"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n");
|
|
strcat(s,"Accept-Language: de-DE,de;q=0.9,en;q=0.8\r\n");
|
|
strcat(s,"Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n");
|
|
strcat(s,"Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0\r\n");
|
|
strcat(s,"Referer: http://home.chatcity.de/registrierung/\r\n");
|
|
strcat(s,"Cookie: POPUPCHECK=1194890296737\r\n");
|
|
strcat(s,"Cookie2: $Version=1\r\n");
|
|
strcat(s,"Connection: Keep-Alive, TE\r\n");
|
|
strcat(s,"TE: deflate, gzip, chunked, identity, trailers\r\n");
|
|
strcat(s,"\r\n");
|
|
|
|
nReadAmount=send(passSocket,s,strlen(s),0);
|
|
printf("%s %i\n",s,nReadAmount);
|
|
|
|
printf("registrierung fertig\n");
|
|
|
|
char pBuffer[1024];
|
|
int y;
|
|
MString x;
|
|
do {
|
|
y=recv(passSocket,pBuffer,1024,0);
|
|
Sleep(100);
|
|
} while (y>0);
|
|
closesocket(passSocket);
|
|
}
|
|
|
|
void ChatBotClass::registernickname(char *nickname, char *pwd, char *email) {
|
|
getregistrationform();
|
|
registername(nickname,pwd,email);
|
|
}
|
|
|