Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ object Authors {
val Wing = Author("Wing", 298295889720770563L)
val ArjixWasTaken = Author("ArjixWasTaken", 674710789138939916L)
val PikachuGabe = Author("pikachugabe", 701095070870274139L)
val Clienthax = Author("Clienthax", 98355277182566400L)
val catsoft = Author("catsoft", 532967505438965780L)
}

Expand Down
13 changes: 13 additions & 0 deletions plugins/NoUpsideDown/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import com.aliucord.gradle.repo.Authors
import com.aliucord.gradle.repo.author

plugins {
id("com.aliucord.plugins-repo")
}

version = "1.0.1"
description = "Disable upside down screen rotation"

aliucord {
author(Authors.Clienthax)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package uk.co.haxyshideout.aliuplugins.noupsidedown;

import android.content.Context;
import android.content.pm.ActivityInfo;
import android.os.Bundle;

import com.aliucord.Utils;
import com.aliucord.annotations.AliucordPlugin;
import com.aliucord.entities.Plugin;
import com.aliucord.patcher.Hook;
import com.aliucord.patcher.PreHook;
import com.discord.app.AppActivity;

@AliucordPlugin(requiresRestart = true)
public class NoUpsideDown extends Plugin {

@Override
public void start(Context context) throws Throwable {
patcher.patch(
AppActivity.class.getDeclaredMethod("onCreate", Bundle.class),
new Hook(param -> {
AppActivity activity = (AppActivity) param.thisObject;
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
})
);

}

@Override
public void stop(Context context) {
patcher.unpatchAll();
}

}
13 changes: 13 additions & 0 deletions plugins/TenorGifFix/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import com.aliucord.gradle.repo.Authors
import com.aliucord.gradle.repo.author

plugins {
id("com.aliucord.plugins-repo")
}

version = "1.0.0"
description = "Make gifs download from tenor instead of mp4s"

aliucord {
author(Authors.Clienthax)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package uk.co.haxyshideout.aliuplugins.tenorgif;

import android.content.Context;
import android.net.Uri;

import com.aliucord.annotations.AliucordPlugin;
import com.aliucord.entities.Plugin;
import com.aliucord.patcher.PreHook;
import com.discord.utilities.io.NetworkUtils;

import java.util.List;

import kotlin.jvm.functions.Function1;

@AliucordPlugin
public class TenorGifFix extends Plugin {

@Override
public void start(Context context) throws Throwable {

patcher.patch(
NetworkUtils.class.getDeclaredMethod("downloadFile", Context.class, Uri.class, String.class, String.class, Function1.class, Function1.class),
new PreHook(param -> {
Uri uri = (Uri) param.args[1];

if (!uri.getPath().contains(".tenor.com")) {
return;
}

List<String> pathSegments = uri.getPathSegments();
int startSegment = 0;
for (int i = 0; i < pathSegments.size(); i++) {
if (pathSegments.get(i).contains(".tenor.com")) {
startSegment = i;
break;
}
}

String hostname = pathSegments.get(startSegment);
String tenorID = pathSegments.get(startSegment+1);
String fileName = pathSegments.get(startSegment+2);
if (tenorID.endsWith("AC")) {
return;
}

tenorID = tenorID.substring(0, tenorID.length()-2) + "AC";
fileName = fileName.replace(".mp4", ".gif");
String newUri = "https://"+hostname+"/"+tenorID+"/"+fileName;
try {
uri = Uri.parse(newUri);
} catch (Exception e) {
logger.error(e);
}

param.args[1] = uri;
})
);

}

@Override
public void stop(Context context) {
patcher.unpatchAll();
}


}