Ammar Githam
4 years ago
2 changed files with 94 additions and 80 deletions
-
76app/src/main/java/awais/instagrabber/activities/DirectMessageThread.java
-
84app/src/main/java/awais/instagrabber/asyncs/direct_messages/CommentAction.java
@ -0,0 +1,84 @@ |
|||
package awais.instagrabber.asyncs.direct_messages; |
|||
|
|||
import android.os.AsyncTask; |
|||
import android.util.Log; |
|||
|
|||
import java.io.DataOutputStream; |
|||
import java.net.HttpURLConnection; |
|||
import java.net.URL; |
|||
import java.net.URLEncoder; |
|||
import java.util.UUID; |
|||
|
|||
import awais.instagrabber.utils.Constants; |
|||
import awais.instagrabber.utils.Utils; |
|||
|
|||
import static awais.instagrabber.utils.Utils.settingsHelper; |
|||
|
|||
public class CommentAction extends AsyncTask<Void, Void, Boolean> { |
|||
private final String text; |
|||
private final String threadId; |
|||
|
|||
private OnTaskCompleteListener listener; |
|||
|
|||
public CommentAction(String text, String threadId) { |
|||
this.text = text; |
|||
this.threadId = threadId; |
|||
} |
|||
|
|||
protected Boolean doInBackground(Void... lmao) { |
|||
boolean ok = false; |
|||
final String url2 = "https://i.instagram.com/api/v1/direct_v2/threads/broadcast/text/"; |
|||
final String cookie = settingsHelper.getString(Constants.COOKIE); |
|||
try { |
|||
final HttpURLConnection urlConnection2 = (HttpURLConnection) new URL(url2).openConnection(); |
|||
urlConnection2.setRequestMethod("POST"); |
|||
urlConnection2.setRequestProperty("User-Agent", Constants.I_USER_AGENT); |
|||
urlConnection2.setUseCaches(false); |
|||
final String commentText = URLEncoder.encode(text, "UTF-8") |
|||
.replaceAll("\\+", "%20").replaceAll("\\%21", "!").replaceAll("\\%27", "'") |
|||
.replaceAll("\\%28", "(").replaceAll("\\%29", ")").replaceAll("\\%7E", "~"); |
|||
final String cc = UUID.randomUUID().toString(); |
|||
final String urlParameters2 = Utils.sign("{\"_csrftoken\":\"" + cookie.split("csrftoken=")[1].split(";")[0] |
|||
+ "\",\"_uid\":\"" + Utils.getUserIdFromCookie(cookie) |
|||
+ "\",\"__uuid\":\"" + settingsHelper.getString(Constants.DEVICE_UUID) |
|||
+ "\",\"client_context\":\"" + cc |
|||
+ "\",\"mutation_token\":\"" + cc |
|||
+ "\",\"text\":\"" + commentText |
|||
+ "\",\"thread_ids\":\"[" + threadId |
|||
+ "]\",\"action\":\"send_item\"}"); |
|||
urlConnection2.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); |
|||
urlConnection2.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters2.getBytes().length)); |
|||
urlConnection2.setDoOutput(true); |
|||
DataOutputStream wr2 = new DataOutputStream(urlConnection2.getOutputStream()); |
|||
wr2.writeBytes(urlParameters2); |
|||
wr2.flush(); |
|||
wr2.close(); |
|||
urlConnection2.connect(); |
|||
Log.d("austin_debug", urlConnection2.getResponseCode() + " " + urlParameters2 + " " + cookie); |
|||
if (urlConnection2.getResponseCode() == HttpURLConnection.HTTP_OK) { |
|||
ok = true; |
|||
} |
|||
urlConnection2.disconnect(); |
|||
} catch (Throwable ex) { |
|||
Log.e("austin_debug", "dm send: " + ex); |
|||
} |
|||
return ok; |
|||
} |
|||
|
|||
@Override |
|||
protected void onPostExecute(final Boolean result) { |
|||
if (listener != null) { |
|||
listener.onTaskComplete(result); |
|||
} |
|||
} |
|||
|
|||
public void setOnTaskCompleteListener(final OnTaskCompleteListener listener) { |
|||
if (listener != null) { |
|||
this.listener = listener; |
|||
} |
|||
} |
|||
|
|||
public interface OnTaskCompleteListener { |
|||
void onTaskComplete(boolean ok); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue