mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-11-22 14:47:29 +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.R;
|
||||||
import awais.instagrabber.adapters.StoriesAdapter;
|
import awais.instagrabber.adapters.StoriesAdapter;
|
||||||
import awais.instagrabber.asyncs.DownloadAsync;
|
import awais.instagrabber.asyncs.DownloadAsync;
|
||||||
|
import awais.instagrabber.asyncs.direct_messages.DirectThreadBroadcaster;
|
||||||
import awais.instagrabber.asyncs.i.iStoryStatusFetcher;
|
import awais.instagrabber.asyncs.i.iStoryStatusFetcher;
|
||||||
import awais.instagrabber.customviews.helpers.SwipeGestureListener;
|
import awais.instagrabber.customviews.helpers.SwipeGestureListener;
|
||||||
import awais.instagrabber.databinding.ActivityStoryViewerBinding;
|
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> {
|
class CommentAction extends AsyncTask<String, Void, Void> {
|
||||||
boolean ok = false;
|
|
||||||
|
|
||||||
protected Void doInBackground(String... rawAction) {
|
protected Void doInBackground(String... rawAction) {
|
||||||
final String action = rawAction[0];
|
final String action = rawAction[0];
|
||||||
final String url = "https://i.instagram.com/api/v1/direct_v2/create_group_thread/";
|
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();
|
wr.close();
|
||||||
urlConnection.connect();
|
urlConnection.connect();
|
||||||
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||||
try {
|
final String threadid = new JSONObject(Utils.readFromConnection(urlConnection)).getString("thread_id");
|
||||||
final String threadid = new JSONObject(Utils.readFromConnection(urlConnection)).getString("thread_id");
|
final DirectThreadBroadcaster.StoryReplyBroadcastOptions options =
|
||||||
final String url2 = "https://i.instagram.com/api/v1/direct_v2/threads/broadcast/reel_share/";
|
new DirectThreadBroadcaster.StoryReplyBroadcastOptions(
|
||||||
final HttpURLConnection urlConnection2 = (HttpURLConnection) new URL(url2).openConnection();
|
action,
|
||||||
urlConnection2.setRequestMethod("POST");
|
currentStory.getStoryMediaId(),
|
||||||
urlConnection2.setRequestProperty("User-Agent", Constants.I_USER_AGENT);
|
currentStory.getUserId()
|
||||||
urlConnection2.setUseCaches(false);
|
);
|
||||||
final String commentText = URLEncoder.encode(action, "UTF-8")
|
final DirectThreadBroadcaster broadcast = new DirectThreadBroadcaster(threadid);
|
||||||
.replaceAll("\\+", "%20").replaceAll("\\%21", "!").replaceAll("\\%27", "'")
|
broadcast.setOnTaskCompleteListener(result -> {
|
||||||
.replaceAll("\\%28", "(").replaceAll("\\%29", ")").replaceAll("\\%7E", "~");
|
Toast.makeText(getApplicationContext(),
|
||||||
final String cc = UUID.randomUUID().toString();
|
result != null ? R.string.answered_story : R.string.downloader_unknown_error,
|
||||||
final String urlParameters2 = Utils.sign("{\"_csrftoken\":\"" + cookie.split("csrftoken=")[1].split(";")[0]
|
Toast.LENGTH_SHORT).show();
|
||||||
+"\",\"_uid\":\"" + Utils.getUserIdFromCookie(cookie)
|
});
|
||||||
+"\",\"__uuid\":\"" + settingsHelper.getString(Constants.DEVICE_UUID)
|
broadcast.execute(options);
|
||||||
+"\",\"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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
urlConnection.disconnect();
|
urlConnection.disconnect();
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
Log.e("austin_debug", "reply (CT): " + ex);
|
Log.e("austin_debug", "reply (CT): " + ex);
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
return null;
|
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 {
|
public enum ItemType {
|
||||||
TEXT("text"),
|
TEXT("text"),
|
||||||
REACTION("reaction"),
|
REACTION("reaction"),
|
||||||
|
REELSHARE("reel_share"),
|
||||||
IMAGE("configure_photo");
|
IMAGE("configure_photo");
|
||||||
|
|
||||||
private final String value;
|
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 {
|
public static class ImageBroadcastOptions extends BroadcastOptions {
|
||||||
final boolean allowFullAspectRatio;
|
final boolean allowFullAspectRatio;
|
||||||
final String uploadId;
|
final String uploadId;
|
||||||
|
Loading…
Reference in New Issue
Block a user