Skip to content

Commit 6eec69d

Browse files
committed
Release 1.2.0
1 parent 734f26a commit 6eec69d

File tree

10 files changed

+165
-37
lines changed

10 files changed

+165
-37
lines changed

pom.xml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.mrdoc</groupId>
88
<artifactId>Twitch_TOPCheersTotal</artifactId>
9-
<version>1.0.0</version>
9+
<version>1.2.0</version>
1010

1111
<properties>
1212
<maven.compiler.source>1.8</maven.compiler.source>
@@ -66,14 +66,25 @@
6666
<include>**/config.yml</include>
6767
</includes>
6868
</resource>
69-
<!-- <resource>
70-
<directory>src/main/resources/examples</directory>
71-
</resource> -->
7269
</resources>
7370
</configuration>
7471
</execution>
7572
</executions>
7673
</plugin>
74+
<plugin>
75+
<groupId>org.apache.maven.plugins</groupId>
76+
<artifactId>maven-jar-plugin</artifactId>
77+
<configuration>
78+
<archive>
79+
<manifest>
80+
<mainClass>test.App</mainClass>
81+
<addDefaultImplementationEntries>
82+
true
83+
</addDefaultImplementationEntries>
84+
</manifest>
85+
</archive>
86+
</configuration>
87+
</plugin>
7788
</plugins>
7889
</build>
7990

@@ -131,6 +142,12 @@
131142
<artifactId>JCDP</artifactId>
132143
<version>2.0.3.1</version>
133144
</dependency>
145+
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
146+
<dependency>
147+
<groupId>org.apache.commons</groupId>
148+
<artifactId>commons-io</artifactId>
149+
<version>1.3.2</version>
150+
</dependency>
134151
</dependencies>
135152

136153
</project>

src/main/java/me/mrdoc/twitchtopcheers/Core.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
1010

1111
import java.io.IOException;
12-
import java.util.ArrayList;
12+
import java.util.HashMap;
1313
import java.util.Scanner;
1414
import java.util.concurrent.Executors;
1515
import java.util.concurrent.ScheduledExecutorService;
@@ -27,7 +27,8 @@ public class Core {
2727
public static final ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
2828

2929
public static void main(String[] args) throws IOException {
30-
PrintConsole.sendStatus("Iniciando sistema...");
30+
PrintConsole.sendStatus("Iniciando sistema de TOP por session de cheers.");
31+
PrintConsole.sendStatus("Version: " + Core.class.getPackage().getImplementationVersion());
3132

3233
loadConfig();
3334
loadFileTop();
@@ -45,6 +46,12 @@ public static void main(String[] args) throws IOException {
4546
if(response.equalsIgnoreCase("y")) {
4647
PrintConsole.sendInfo("Borrando registros de TOP");
4748
DBCheerManagent.purgeTable();
49+
FileCheerManagent.purgeFiles();
50+
loadFileTop(); //reloadFile again
51+
} else {
52+
//Como no se borran registros, actualizamos los archivos con TOP.
53+
HashMap<Integer,Cheering> cheersTOP = DBCheerManagent.getTOPCheers(ConfigManager.getConfig().getTop_size());
54+
FileCheerManagent.setTOP(cheersTOP);
4855
}
4956

5057
//testALL();
@@ -58,19 +65,16 @@ public static void main(String[] args) throws IOException {
5865
}
5966

6067
private static void testALL() {
68+
PrintConsole.sendInfo("Corriendo test...");
6169
DBCheerManagent.addCheer("test",200);
6270
DBCheerManagent.addCheer("test2",800);
6371
DBCheerManagent.addCheer("test3",100);
6472

65-
ArrayList<Cheering> cheers = DBCheerManagent.getTOPCheers(1);
73+
HashMap<Integer,Cheering> cheers = DBCheerManagent.getTOPCheers(ConfigManager.getConfig().getTop_size());
6674

6775
PrintConsole.sendInfo("CANTIDAD TOP: " + cheers.size());
6876

69-
if(!cheers.isEmpty()) {
70-
PrintConsole.sendInfo(cheers.get(0).getUsername() + " " + cheers.get(0).getTotalCheers());
71-
}
72-
73-
FileCheerManagent.setTOP(DBCheerManagent.getTOPCheers(1).get(0));
77+
FileCheerManagent.setTOP(DBCheerManagent.getTOPCheers(ConfigManager.getConfig().getTop_size()));
7478

7579
//FileCheerManagent.setTOP(DBCheerManagent.getTOPCheers(1).get(0));
7680
}

src/main/java/me/mrdoc/twitchtopcheers/bot/TwitchBOT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.mrdoc.twitchtopcheers.bot;
22

33
import me.mrdoc.twitchtopcheers.Core;
4+
import me.mrdoc.twitchtopcheers.bot.listener.GeneralListener;
45
import me.mrdoc.twitchtopcheers.bot.listener.ManageCheerListener;
56
import me.mrdoc.twitchtopcheers.managers.ConfigManager;
67
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
@@ -74,14 +75,14 @@ private Configuration.Builder generateConfiguration() {
7475
.addCapHandler(new EnableCapHandler("twitch.tv/tags"))
7576
.addCapHandler(new EnableCapHandler("twitch.tv/commands"))
7677

77-
7878
.addServer("irc.twitch.tv")
7979

8080
.setName(ConfigManager.getConfig().getChannel_config().get("bot_username")) //Your twitch.tv username
8181
.setServerPassword(ConfigManager.getConfig().getChannel_config().get("bot_token")) //Your oauth password from http://twitchapps.com/tmi
8282
.addAutoJoinChannel(ConfigManager.getConfig().getChannel_config().get("channel_name"))
8383

8484
.addListener(new ManageCheerListener())
85+
.addListener(new GeneralListener())
8586

8687
;
8788
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package me.mrdoc.twitchtopcheers.bot.listener;
2+
3+
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
4+
import org.pircbotx.hooks.ListenerAdapter;
5+
import org.pircbotx.hooks.events.ConnectAttemptFailedEvent;
6+
import org.pircbotx.hooks.events.ConnectEvent;
7+
import org.pircbotx.hooks.events.ServerResponseEvent;
8+
9+
/**
10+
* Created on 24-07-2017 for TwitchGOTH_TOPSumCheers.
11+
*
12+
* @author Doc
13+
*/
14+
public class GeneralListener extends ListenerAdapter {
15+
16+
@Override
17+
public void onConnectAttemptFailed(ConnectAttemptFailedEvent event) {
18+
PrintConsole.sendError(event.toString());
19+
System.exit(0);
20+
}
21+
22+
@Override
23+
public void onServerResponse(ServerResponseEvent event) {
24+
if(event.getCode() == 446 || event.getCode() == 339) {
25+
PrintConsole.sendError("Error de conexion al canal IRC para trackear cheers. \nDetalles: " + event.getRawLine());
26+
System.exit(0);
27+
}
28+
}
29+
30+
@Override
31+
public void onConnect(ConnectEvent event) {
32+
PrintConsole.sendInfo("Servidor conectado correctamente.");
33+
event.respond("Conectado correctamente, trackeando envio de cheers.");
34+
}
35+
36+
37+
38+
}

src/main/java/me/mrdoc/twitchtopcheers/bot/listener/ManageCheerListener.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package me.mrdoc.twitchtopcheers.bot.listener;
22

33
import me.mrdoc.twitchtopcheers.classes.Cheering;
4+
import me.mrdoc.twitchtopcheers.managers.ConfigManager;
45
import me.mrdoc.twitchtopcheers.managers.DBCheerManagent;
56
import me.mrdoc.twitchtopcheers.managers.FileCheerManagent;
67
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
78
import org.pircbotx.hooks.ListenerAdapter;
89
import org.pircbotx.hooks.events.MessageEvent;
910

10-
import java.util.ArrayList;
11+
import java.util.HashMap;
1112

1213
/**
1314
* Created on 19-07-2017 for twitchtopcheers.
@@ -33,9 +34,9 @@ private void onCheerEvent(MessageEvent event) {
3334
DBCheerManagent.addCheer(event.getUser().getNick(),cheerInMsg);
3435

3536
//Recargamos TOP
36-
ArrayList<Cheering> cheersTOP = DBCheerManagent.getTOPCheers(1);
37+
HashMap<Integer,Cheering> cheersTOP = DBCheerManagent.getTOPCheers(ConfigManager.getConfig().getTop_size());
3738

38-
FileCheerManagent.setTOP(cheersTOP.get(0));
39+
FileCheerManagent.setTOP(cheersTOP);
3940
}
4041

4142
}

src/main/java/me/mrdoc/twitchtopcheers/classes/Config.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
public class Config {
1111

1212
private String out_message;
13+
private String empty_message;
1314
private Map<String, String> channel_config;
15+
private int top_size;
1416

1517
public String getOut_message() {
1618
return out_message;
@@ -27,4 +29,20 @@ public Map<String, String> getChannel_config() {
2729
public void setChannel_config(Map<String, String> channel_config) {
2830
this.channel_config = channel_config;
2931
}
32+
33+
public int getTop_size() {
34+
return top_size;
35+
}
36+
37+
public void setTop_size(int top_size) {
38+
this.top_size = top_size;
39+
}
40+
41+
public String getEmpty_message() {
42+
return empty_message;
43+
}
44+
45+
public void setEmpty_message(String empty_message) {
46+
this.empty_message = empty_message;
47+
}
3048
}

src/main/java/me/mrdoc/twitchtopcheers/managers/ConfigManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
55
import me.mrdoc.twitchtopcheers.classes.Config;
6+
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
67

78
import java.io.File;
89
import java.io.IOException;
@@ -23,6 +24,10 @@ public static void loadConfig() {
2324
try {
2425
configData = mapper.readValue(new File(CONFIG_FILE), Config.class);
2526
configData.getChannel_config().put("channel_name","#"+configData.getChannel_config().get("channel_name"));
27+
if(!configData.getChannel_config().get("bot_token").contains("oauth:")) {
28+
PrintConsole.sendError("El login del BOT no contiene oauth: por lo que la conexion no es posible");
29+
System.exit(0);
30+
}
2631
} catch (IOException e) {
2732
e.printStackTrace();
2833
}

src/main/java/me/mrdoc/twitchtopcheers/managers/DBCheerManagent.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import me.mrdoc.twitchtopcheers.classes.Cheering;
44
import me.mrdoc.twitchtopcheers.db.SQLiteSystem;
5-
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
65

76
import java.sql.PreparedStatement;
87
import java.sql.ResultSet;
98
import java.sql.SQLException;
10-
import java.util.ArrayList;
9+
import java.util.HashMap;
1110

1211
/**
1312
* Created on 20-07-2017 for TwitchGOTH_TOPSumCheers.
@@ -82,8 +81,8 @@ public static Cheering getCheer(String username) {
8281
return null;
8382
}
8483

85-
public static ArrayList<Cheering> getTOPCheers(int cant) {
86-
ArrayList<Cheering> cheers = new ArrayList<>();
84+
public static HashMap<Integer,Cheering> getTOPCheers(int cant) {
85+
HashMap<Integer,Cheering> cheers = new HashMap<Integer,Cheering>();
8786

8887
String command = "SELECT * FROM cheerings ORDER BY cheermount DESC LIMIT ? ;";
8988

@@ -95,19 +94,17 @@ public static ArrayList<Cheering> getTOPCheers(int cant) {
9594

9695
ResultSet rs = psGetCheer.executeQuery();
9796

97+
int pos = 1;
98+
9899
while(rs.next()) {
99100
Cheering cheer = new Cheering(rs.getString("username"),rs.getInt("cheermount"));
100-
cheers.add(cheer);
101+
cheers.put(pos,cheer);
102+
pos = pos + 1;
101103
}
102104
} catch (SQLException e) {
103105
e.printStackTrace();
104106
}
105107

106-
if(cheers.isEmpty()) {
107-
PrintConsole.sendError("No hay datos para cargar en el TOP, el sistema no puede continuar.");
108-
System.exit(0);
109-
}
110-
111108
return cheers;
112109
}
113110

src/main/java/me/mrdoc/twitchtopcheers/managers/FileCheerManagent.java

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import me.mrdoc.twitchtopcheers.classes.Cheering;
44
import me.mrdoc.twitchtopcheers.utils.PrintConsole;
5+
import org.apache.commons.io.FileUtils;
56

67
import java.io.BufferedWriter;
78
import java.io.File;
89
import java.io.FileWriter;
910
import java.io.IOException;
11+
import java.util.HashMap;
1012

1113
/**
1214
* Created on 20-07-2017 for TwitchGOTH_TOPSumCheers.
@@ -15,20 +17,29 @@
1517
*/
1618
public class FileCheerManagent {
1719

18-
private static File filetop;
20+
private static HashMap<Integer,File> filetops = new HashMap<>();
1921

22+
public static void setTOP(HashMap<Integer,Cheering> top) {
23+
if(top.isEmpty()) {
24+
return;
25+
}
26+
for(int pos : top.keySet()) {
27+
setTOP(pos,top.get(pos));
28+
}
29+
}
2030

21-
public static void setTOP(Cheering cheer) {
31+
public static void setTOP(int pos, Cheering cheer) {
2232
try {
23-
FileWriter fw = new FileWriter(getFileTOP());
33+
FileWriter fw = new FileWriter(filetops.get(pos));
2434
BufferedWriter bw = new BufferedWriter(fw);
2535

2636
String message = ConfigManager.getConfig().getOut_message();
2737

38+
message = message.replace("{pos}",Integer.toString(pos));
2839
message = message.replace("{username}",cheer.getUsername());
2940
message = message.replace("{cheers}",cheer.getTotalCheers() + "");
3041

31-
PrintConsole.sendInfo("Mensaje en top.txt fue reemplazado a: " + message);
42+
PrintConsole.sendInfo("Mensaje en top_" + pos + ".txt fue reemplazado a: " + message);
3243

3344
bw.write(message);
3445
bw.flush();
@@ -43,15 +54,41 @@ public static void loadFileCheerManagent() {
4354
cheeckFile();
4455
}
4556

46-
private static File getFileTOP() {
47-
cheeckFile();
48-
return filetop;
57+
private static File getFileTOP(int pos) {
58+
if(filetops.containsKey(pos)) {
59+
PrintConsole.sendError("Error al cargar archivo de TOP. La posicion es incorrecta.");
60+
}
61+
return filetops.get(pos);
62+
}
63+
64+
public static void purgeFiles() {
65+
PrintConsole.sendInfo("Eliminando archivos txt de TOP.");
66+
try {
67+
FileUtils.deleteDirectory(new File("cheers"));
68+
} catch (IOException e) {
69+
PrintConsole.sendWarning("Ocurrio un problema al momento de purgar la carpeta de cheers");
70+
e.printStackTrace();
71+
}
4972
}
5073

5174
private static void cheeckFile() {
52-
filetop = new File("top.txt");
5375
try {
54-
filetop.createNewFile();
76+
filetops.clear(); //Para evitar problemas borramos todo lo registrado en caso de.
77+
78+
new File("cheers").mkdir(); //Creamos carpeta de txt
79+
80+
for(int pos = 1; pos <= ConfigManager.getConfig().getTop_size(); pos++) {
81+
File filepos = new File("cheers/top_" + pos +".txt");
82+
if(filepos.createNewFile()) {
83+
FileWriter fw = new FileWriter(filepos);
84+
BufferedWriter bw = new BufferedWriter(fw);
85+
86+
bw.write(ConfigManager.getConfig().getEmpty_message());
87+
bw.flush();
88+
bw.close();
89+
}
90+
filetops.put(pos,filepos);
91+
}
5592
} catch (IOException e) {
5693
e.printStackTrace();
5794
}

0 commit comments

Comments
 (0)