diff options
author | Robert Pösel <robyer@seznam.cz> | 2016-09-04 14:04:49 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2016-09-04 14:04:49 +0000 |
commit | 8234832e06e873df035270f162d7d151fbf6e7eb (patch) | |
tree | 200613059ddb4bc61c73fa946ca735836ee92163 /protocols/FacebookRM/src/requests/login.h | |
parent | 2f492f0c3af53dada6b909d1c31dc665c33dfde5 (diff) |
Facebook: Massive rewrite of all communication requests
Note it doesn't use persistent connection yet.
git-svn-id: http://svn.miranda-ng.org/main/trunk@17246 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/FacebookRM/src/requests/login.h')
-rw-r--r-- | protocols/FacebookRM/src/requests/login.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/protocols/FacebookRM/src/requests/login.h b/protocols/FacebookRM/src/requests/login.h new file mode 100644 index 0000000000..85a2da36c6 --- /dev/null +++ b/protocols/FacebookRM/src/requests/login.h @@ -0,0 +1,116 @@ +/* + +Facebook plugin for Miranda Instant Messenger +_____________________________________________ + +Copyright © 2011-16 Robert Pösel + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#ifndef _FACEBOOK_REQUEST_LOGIN_H_ +#define _FACEBOOK_REQUEST_LOGIN_H_ + +// connecting physically +class LoginRequest : public HttpRequest +{ +public: + LoginRequest() : + HttpRequest(REQUEST_POST, FACEBOOK_SERVER_LOGIN "/login.php") + { + Url + << "login_attempt=1"; + } + + LoginRequest(const char *username, const char *password, const char *urlData, const char *bodyData) : + HttpRequest(REQUEST_POST, FACEBOOK_SERVER_LOGIN "/login.php") + { + Url + << "login_attempt=1" + << urlData; // additional data parsed from form + + Body + << "persistent=1" + << CHAR_VALUE("email", ptrA(mir_urlEncode(username))) + << CHAR_VALUE("pass", ptrA(mir_urlEncode(password))) + << CHAR_VALUE("lgndim", "eyJ3IjoxOTIwLCJoIjoxMDgwLCJhdyI6MTgzNCwiYWgiOjEwODAsImMiOjMyfQ==") // means base64 encoded: {"w":1920,"h":1080,"aw":1834,"ah":1080,"c":32} + << bodyData; // additional data parsed from form + } +}; + +// request to receive login code via SMS +class LoginSmsRequest : public HttpRequest +{ +public: + LoginSmsRequest(facebook_client *fc, const char *dtsg) : + HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/ajax/login/approvals/send_sms") + { + Url + << "dpr=1"; + + Body + << "method_requested=sms_requested" + << "__a=1" + << "__user=0" + << "__be=0" + << "__pc=EXP1:DEFAULT" + << CHAR_VALUE("current_time", (utils::time::unix_timestamp() + ".000").c_str()) + << CHAR_VALUE("__dyn", fc->__dyn()) + << CHAR_VALUE("__req", fc->__req()) + << CHAR_VALUE("fb_dtsg", dtsg) + << CHAR_VALUE("ttstamp", fc->ttstamp_.c_str()) + << CHAR_VALUE("__rev", fc->__rev()); + } +}; + +// setting machine name +class SetupMachineRequest : public HttpRequest +{ +public: + SetupMachineRequest() : + HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/checkpoint/") + { + Url + << "next"; + } + + SetupMachineRequest(const char *dtsg, const char *nh, const char *submit) : + HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/checkpoint/") + { + Url + << "next"; + + Body + << CMStringA(::FORMAT, "submit[%s]=%s", submit, submit).c_str() + << CHAR_VALUE("nh", nh) + << CHAR_VALUE("fb_dtsg", dtsg); + } +}; + +// disconnecting physically +class LogoutRequest : public HttpRequest +{ +public: + LogoutRequest(const char *dtsg, const char *logoutHash) : + HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/logout.php") + { + Body + << "ref=" + << CHAR_VALUE("fb_dtsg", dtsg) + << CHAR_VALUE("h", logoutHash); + } +}; + +#endif //_FACEBOOK_REQUEST_LOGIN_H_ |