added Telegram Bot
This commit is contained in:
parent
c7a6a28d49
commit
deb6f83152
5
pom.xml
5
pom.xml
|
@ -72,5 +72,10 @@
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
<version>8.0.11</version>
|
<version>8.0.11</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>TelegramAPI</groupId>
|
||||||
|
<artifactId>TelegramAPI</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
|
@ -27,6 +27,7 @@ public class Config {
|
||||||
put("youtube.apikey" , "" );
|
put("youtube.apikey" , "" );
|
||||||
put("crawler.maxvideos" , "100" );
|
put("crawler.maxvideos" , "100" );
|
||||||
put("crawler.threadcount", "4" );
|
put("crawler.threadcount", "4" );
|
||||||
|
put("telegramapi.key" , "" );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -224,6 +224,10 @@ public class Crawler implements Runnable {
|
||||||
log.info("Crawling Stopped. Runtime: " + runtimem + "min and " + crawlcount + " videos crawled. ( " + vidps + " v/s )");
|
log.info("Crawling Stopped. Runtime: " + runtimem + "min and " + crawlcount + " videos crawled. ( " + vidps + " v/s )");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DB getDB() {
|
||||||
|
return db;
|
||||||
|
}
|
||||||
|
|
||||||
public static Video getVideo() {
|
public static Video getVideo() {
|
||||||
return new Video();
|
return new Video();
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,4 +131,19 @@ public class DB {
|
||||||
log.error("Fehler bim ausführen der Update-Query: " + q, e);
|
log.error("Fehler bim ausführen der Update-Query: " + q, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getRandom() {
|
||||||
|
ResultSet set = query("SELECT `id`, rand() as 'r' FROM `videos` ORDER BY r LIMIT 1;");
|
||||||
|
if(set == null)
|
||||||
|
return null;
|
||||||
|
try {
|
||||||
|
if(set.next()) {
|
||||||
|
return set.getString(1);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.warn("error getting a random video", e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -5,38 +5,65 @@ import java.util.Scanner;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
public class Main {
|
import de.mrbesen.telegram.TelegramAPI;
|
||||||
|
import de.mrbesen.telegram.commands.CommandHandler;
|
||||||
|
import de.mrbesen.telegram.objects.TUser;
|
||||||
|
|
||||||
|
public class Main implements CommandHandler{
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
new Main().run();
|
||||||
|
}
|
||||||
|
|
||||||
|
Crawler cra;
|
||||||
|
|
||||||
|
private void run() {
|
||||||
//init Logger
|
//init Logger
|
||||||
new Log(); // init logging, set format etc
|
new Log(); // init logging, set format etc
|
||||||
Logger log = Logger.getLogger(Main.class.getName());
|
Logger log = Logger.getLogger(Main.class.getName());
|
||||||
|
|
||||||
//loading config
|
//loading config
|
||||||
new Config(new File("crawl.conf"));
|
new Config(new File("crawl.conf"));
|
||||||
|
|
||||||
//starting crawler
|
//starting crawler
|
||||||
Crawler cra = new Crawler();
|
cra = new Crawler();
|
||||||
Thread t = new Thread(cra, "Crawler");
|
Thread t = new Thread(cra, "Crawler");
|
||||||
t.start();
|
t.start();
|
||||||
|
|
||||||
//CLI
|
//starting BOT API
|
||||||
Scanner s = new Scanner(System.in);
|
TelegramAPI tapi = new TelegramAPI(Config.prop.getProperty("telegramapi.key"));
|
||||||
String in;
|
tapi.getCommandManager().registerCommand("random", this);
|
||||||
while((in= s.nextLine()) != null && t.isAlive()) {
|
tapi.setHelpText("Send the command /random to get a random video.");
|
||||||
if(in.equalsIgnoreCase("stop")) {
|
tapi.start();
|
||||||
cra.stop();
|
|
||||||
break;
|
//CLI
|
||||||
} else if(in.equalsIgnoreCase("add")) {
|
Scanner s = new Scanner(System.in);
|
||||||
log.info("please enter ytid:");
|
String in;
|
||||||
String id = s.nextLine().trim();
|
while((in= s.nextLine()) != null && t.isAlive()) {
|
||||||
if(id.length() > 9 && id.length() < 13) {
|
if(in.equalsIgnoreCase("stop")) {
|
||||||
cra.addtoCrawl(id);
|
tapi.stop();
|
||||||
log.info("added.");
|
cra.stop();
|
||||||
|
break;
|
||||||
|
} else if(in.equalsIgnoreCase("add")) {
|
||||||
|
log.info("please enter ytid:");
|
||||||
|
String id = s.nextLine().trim();
|
||||||
|
if(id.length() > 9 && id.length() < 13) {
|
||||||
|
cra.addtoCrawl(id);
|
||||||
|
log.info("added.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
s.close();
|
||||||
|
log.info("Terminated.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(TUser sender, String cmd, String[] args) {
|
||||||
|
if(cmd.equals("random")) {
|
||||||
|
String ytid = cra.getDB().getRandom();
|
||||||
|
sender.sendMessage("https://youtube.com/watch?v=" + ytid);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
s.close();
|
return false;
|
||||||
log.info("Terminated.");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -90,7 +90,7 @@ public class YoutubeAPI {
|
||||||
//Seconds
|
//Seconds
|
||||||
v.length += Integer.parseInt(timeparts[timeparts.length-1]);
|
v.length += Integer.parseInt(timeparts[timeparts.length-1]);
|
||||||
} catch(NumberFormatException e) {
|
} catch(NumberFormatException e) {
|
||||||
e.printStackTrace();
|
log.warn("Error saving the time string: " + removeunwanted(split[1]), e);
|
||||||
}
|
}
|
||||||
} else if(split[0].equals("publishedAt")) {
|
} else if(split[0].equals("publishedAt")) {
|
||||||
String tmp = removeunwanted(split[1]);
|
String tmp = removeunwanted(split[1]);
|
||||||
|
|
Loading…
Reference in New Issue