Page MenuHomedesp's stash

No OneTemporary

diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..149cb3c
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2941331
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+bin/
+target/
\ No newline at end of file
diff --git a/.project b/.project
new file mode 100644
index 0000000..4651bff
--- /dev/null
+++ b/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>AnimeRPC</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..ab43c2c
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//src/me/despawningbone/selfbot/DiscordBot.java=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..db24ee7
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,15 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..15175f3
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,61 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>AnimeRPC</groupId>
+ <artifactId>AnimeRPC</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.5.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <!-- put your configurations here -->
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>club.minnced</groupId>
+ <artifactId>java-discord-rpc</artifactId>
+ <version>2.0.2</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>5.6.0</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna-platform -->
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna-platform</artifactId>
+ <version>5.6.0</version>
+ </dependency>
+ </dependencies>
+ <repositories>
+ <repository>
+ <id>jcenter</id>
+ <name>jcenter-bintray</name>
+ <url>http://jcenter.bintray.com</url>
+ </repository>
+ </repositories>
+</project>
\ No newline at end of file
diff --git a/src/me/despawningbone/selfbot/DiscordBot.java b/src/me/despawningbone/selfbot/DiscordBot.java
new file mode 100644
index 0000000..e156923
--- /dev/null
+++ b/src/me/despawningbone/selfbot/DiscordBot.java
@@ -0,0 +1,126 @@
+package me.despawningbone.selfbot;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import com.sun.jna.Native;
+import com.sun.jna.Platform;
+import com.sun.jna.platform.win32.WinDef.HWND;
+
+import club.minnced.discord.rpc.DiscordEventHandlers;
+import club.minnced.discord.rpc.DiscordRPC;
+import club.minnced.discord.rpc.DiscordRichPresence;
+
+import com.sun.jna.platform.win32.User32;
+
+public class DiscordBot {
+
+ public static String prevTitle = "";
+ public static DiscordRichPresence prevPresence = new DiscordRichPresence();
+ public static boolean cleared = false;
+
+ public static void main(String[] args) {
+
+ DiscordRPC lib = DiscordRPC.INSTANCE;
+ String applicationId = "542685911607934986";
+ String steamId = "";
+ DiscordEventHandlers handlers = new DiscordEventHandlers();
+ handlers.ready = (user) -> System.out.println("Ready!");
+ lib.Discord_Initialize(applicationId, handlers, true, steamId);
+ new Thread(() -> {
+ while(true) {
+ lib.Discord_RunCallbacks();
+ String temp = "";
+ if(Platform.isWindows()) {
+ char[] buffer = new char[2048];
+ HWND hwnd = User32.INSTANCE.GetForegroundWindow();
+ User32.INSTANCE.GetWindowText(hwnd, buffer, 1024);
+ temp = Native.toString(buffer);
+ } else if(Platform.isMac()) {
+ final String[] script = {"osascript", "-e", "tell application \"System Events\"", "-e", "tell (first process whose frontmost is true) to return name of window 1", "-e", "end tell"};
+ try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(script).getInputStream()))) {
+ String buffer = null;
+ while ((buffer = bufferedReader.readLine()) != null) {
+ temp = buffer;
+ System.out.println(temp);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {e.printStackTrace();}
+ if(temp.contains("- Watch Anime") || temp.contains("Online Sub - AnimeKisa")) {
+ if(temp.contains("AnimeKisa")) {
+ String title = temp.substring(6).split(" Online Sub - AnimeKisa")[0];
+ if(!prevTitle.equals(title)) {
+ System.out.println(title);
+ String[] split = title.split("Episode");
+ String epi = "Episode" + split[1]; //animekisa puts everything with episode
+ String name = split[0];
+ DiscordRichPresence presence = new DiscordRichPresence();
+ presence.details = name;
+ if(!epi.isEmpty()) presence.state = epi;
+ presence.largeImageKey = "animekisa";
+ presence.largeImageText = "animekisa";
+ //presence.startTimestamp = System.currentTimeMillis() / 1000; // epoch second
+ System.out.println(presence.details);
+ System.out.println(presence.state);
+ //presence.details = "";
+ lib.Discord_UpdatePresence(presence);
+ prevTitle = title;
+ prevPresence = presence;
+ cleared = false;
+ }
+ } else {
+ String title = temp.split("- Watch Anime")[0];
+ if(!prevTitle.equals(title)) {
+ System.out.println(title);
+ String[] split = title.split("Episode");
+ String epi = "";
+ String name = split[0];
+ if(!temp.contains("- Watch Anime Movie Online English Subbed")) {
+ if(split.length < 2) continue; //theres no reason for it to not have episodes if its not movie
+ epi = "Episode" + split[1];
+ } else {
+ epi = "Anime Movie";
+ }
+ DiscordRichPresence presence = new DiscordRichPresence();
+ presence.details = name;
+ if(!epi.isEmpty()) presence.state = epi;
+ presence.largeImageKey = "otakustream";
+ presence.largeImageText = "OtakuStream";
+ //presence.startTimestamp = System.currentTimeMillis() / 1000; // epoch second
+ System.out.println(presence.details);
+ System.out.println(presence.state);
+ //presence.details = "";
+ lib.Discord_UpdatePresence(presence);
+ prevTitle = title;
+ prevPresence = presence;
+ cleared = false;
+ }
+ }
+
+ } else {
+ if(!cleared && !temp.contains(" - Discord") && !temp.contains("工作切換") && !temp.contains("Picture-in-Picture")) {
+ lib.Discord_ClearPresence();
+ cleared = true;
+ prevTitle = "";
+ }
+ /*if(prevPresence.details != null && !prevPresence.details.equals("Idle")) {
+ DiscordRichPresence presence = new DiscordRichPresence();
+ presence.details = "Idle";
+ presence.largeImageKey = "otakustream";
+ presence.largeImageText = "OtakuStream";
+ lib.Discord_UpdatePresence(presence);
+ prevPresence = presence;
+ }*/
+ }
+ }
+ }, "RPC-Callback-Handler").start();
+
+
+ }
+}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Apr 15, 4:22 AM (23 h, 39 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
79/a7/5fe6dce97a634bad1a0b491deb53

Event Timeline