mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-12-23 05:16:58 +00:00
refactor story reply
This commit is contained in:
parent
4857b3bfa0
commit
4b8e8dd8a3
@ -56,6 +56,7 @@ import awais.instagrabber.BuildConfig;
|
||||
import awais.instagrabber.R;
|
||||
import awais.instagrabber.adapters.StoriesAdapter;
|
||||
import awais.instagrabber.asyncs.DownloadAsync;
|
||||
import awais.instagrabber.asyncs.direct_messages.DirectThreadBroadcaster;
|
||||
import awais.instagrabber.asyncs.i.iStoryStatusFetcher;
|
||||
import awais.instagrabber.customviews.helpers.SwipeGestureListener;
|
||||
import awais.instagrabber.databinding.ActivityStoryViewerBinding;
|
||||
@ -723,8 +724,6 @@ final String url = "https://i.instagram.com/api/v1/media/"+currentStory.getStory
|
||||
}
|
||||
|
||||
class CommentAction extends AsyncTask<String, Void, Void> {
|
||||
boolean ok = false;
|
||||
|
||||
protected Void doInBackground(String... rawAction) {
|
||||
final String action = rawAction[0];
|
||||
final String url = "https://i.instagram.com/api/v1/direct_v2/create_group_thread/";
|
||||
@ -747,55 +746,27 @@ final String url = "https://i.instagram.com/api/v1/media/"+currentStory.getStory
|
||||
wr.close();
|
||||
urlConnection.connect();
|
||||
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||
try {
|
||||
final String threadid = new JSONObject(Utils.readFromConnection(urlConnection)).getString("thread_id");
|
||||
final String url2 = "https://i.instagram.com/api/v1/direct_v2/threads/broadcast/reel_share/";
|
||||
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(action, "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
|
||||
+"\",\"media_id\":\"" + currentStory.getStoryMediaId()
|
||||
+"\",\"reel_id\":\"" + currentStory.getUserId()
|
||||
+"\",\"thread_ids\":\"["+threadid
|
||||
+"]\",\"action\":\"send_item\",\"entry\":\"reel\"}");
|
||||
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();
|
||||
if (urlConnection2.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||
ok = true;
|
||||
}
|
||||
urlConnection2.disconnect();
|
||||
} catch (Throwable ex) {
|
||||
Log.e("austin_debug", "reply (B): " + ex);
|
||||
}
|
||||
final String threadid = new JSONObject(Utils.readFromConnection(urlConnection)).getString("thread_id");
|
||||
final DirectThreadBroadcaster.StoryReplyBroadcastOptions options =
|
||||
new DirectThreadBroadcaster.StoryReplyBroadcastOptions(
|
||||
action,
|
||||
currentStory.getStoryMediaId(),
|
||||
currentStory.getUserId()
|
||||
);
|
||||
final DirectThreadBroadcaster broadcast = new DirectThreadBroadcaster(threadid);
|
||||
broadcast.setOnTaskCompleteListener(result -> {
|
||||
Toast.makeText(getApplicationContext(),
|
||||
result != null ? R.string.answered_story : R.string.downloader_unknown_error,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
broadcast.execute(options);
|
||||
}
|
||||
|
||||
urlConnection.disconnect();
|
||||
} catch (Throwable ex) {
|
||||
Log.e("austin_debug", "reply (CT): " + ex);
|
||||
Toast.makeText(getApplicationContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void result) {
|
||||
Toast.makeText(getApplicationContext(),
|
||||
ok ? R.string.answered_story : R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
@ -126,6 +126,7 @@ public class DirectThreadBroadcaster extends AsyncTask<DirectThreadBroadcaster.B
|
||||
public enum ItemType {
|
||||
TEXT("text"),
|
||||
REACTION("reaction"),
|
||||
REELSHARE("reel_share"),
|
||||
IMAGE("configure_photo");
|
||||
|
||||
private final String value;
|
||||
@ -189,6 +190,29 @@ public class DirectThreadBroadcaster extends AsyncTask<DirectThreadBroadcaster.B
|
||||
}
|
||||
}
|
||||
|
||||
public static class StoryReplyBroadcastOptions extends BroadcastOptions {
|
||||
private final String text, mediaId, reelId;
|
||||
|
||||
public StoryReplyBroadcastOptions(String text, String mediaId, String reelId) throws UnsupportedEncodingException {
|
||||
super(ItemType.REELSHARE);
|
||||
this.text = URLEncoder.encode(text, "UTF-8")
|
||||
.replaceAll("\\+", "%20").replaceAll("%21", "!").replaceAll("%27", "'")
|
||||
.replaceAll("%28", "(").replaceAll("%29", ")").replaceAll("%7E", "~");
|
||||
this.mediaId = mediaId;
|
||||
this.reelId = reelId; // or user id, usually same
|
||||
}
|
||||
|
||||
@Override
|
||||
Map<String, String> getFormMap() {
|
||||
final Map<String, String> form = new HashMap<>();
|
||||
form.put("text", text);
|
||||
form.put("media_id", mediaId);
|
||||
form.put("reel_id", reelId);
|
||||
form.put("entry", "reel");
|
||||
return form;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ImageBroadcastOptions extends BroadcastOptions {
|
||||
final boolean allowFullAspectRatio;
|
||||
final String uploadId;
|
||||
|
Loading…
Reference in New Issue
Block a user