summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormavlonerkinboev <mavlonbek.ibragimov007@gmail.com>2021-07-22 18:23:31 +0500
committermavlonerkinboev <mavlonbek.ibragimov007@gmail.com>2021-07-22 18:23:31 +0500
commitcf3a45e8dac64da2482730309d99393826b0a300 (patch)
tree2d65527461b982f033f4176a127bb12c4b4e0b8d
parent6cf764da0da43bd84851181367dc17de3dbdcb82 (diff)
third commit
-rw-r--r--.gitignore5
-rw-r--r--build.gradle8
-rw-r--r--src/main/java/files/App.java43
-rw-r--r--src/main/java/files/entity/User.java31
-rw-r--r--src/main/resources/META-INF/persistence.xml20
5 files changed, 101 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index b64a192..1d6e577 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.gradle
-build
-gradlew*
.idea
+build
gradle
+gradlew*
+app.properties
diff --git a/build.gradle b/build.gradle
index 3677667..3f263dd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,6 +9,10 @@ mainClassName = "files.App"
dependencies {
implementation group: 'com.github.pengrad', name: 'java-telegram-bot-api', version: '5.2.0'
- implementation group: 'org.hibernate', name: 'hibernate-core', version: '5.5.4.Final'
- implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.26'
+ implementation group: 'org.hibernate.ogm', name: 'hibernate-ogm-mongodb', version: '5.4.1.Final'
+ implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '3.0.1'
+ implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+ implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '3.0.1'
+ implementation group: 'com.sun.xml.bind', name: 'jaxb-core', version: '3.0.1'
+ implementation group: 'javax.activation', name: 'activation', version: '1.1.1'
}
diff --git a/src/main/java/files/App.java b/src/main/java/files/App.java
index 95de264..c0e1919 100644
--- a/src/main/java/files/App.java
+++ b/src/main/java/files/App.java
@@ -1,7 +1,46 @@
package files;
+import com.pengrad.telegrambot.TelegramBot;
+import com.pengrad.telegrambot.UpdatesListener;
+import com.pengrad.telegrambot.request.SendMessage;
+
+import files.entity.User;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
public class App {
- public static void main(String[] args) {
- System.out.println("Testing");
+ public static void main(String[] args) throws IOException {
+
+ Properties properties = new Properties();
+ properties.load(new FileInputStream("app.properties"));
+ TelegramBot bot = new TelegramBot(properties.getProperty("telegram_token"));
+
+ EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("animarfo");
+ EntityManager manager = entityManagerFactory.createEntityManager();
+
+ bot.setUpdatesListener(updates -> {
+ updates.forEach(update -> {
+ Long telegramId = update.message().from().id();
+ if(manager.find(User.class, telegramId) == null) {
+ bot.execute(new SendMessage(update.message().chat().id(), "Привет!"));
+
+ User user = new User(telegramId);
+ manager.getTransaction().begin();
+ manager.merge(user);
+ manager.getTransaction().commit();
+ }
+ bot.execute(new SendMessage(update.message().chat().id(), telegramId.toString()));
+ });
+ return UpdatesListener.CONFIRMED_UPDATES_ALL;
+ });
+// manager.close();
+// entityManagerFactory.close();
}
}
diff --git a/src/main/java/files/entity/User.java b/src/main/java/files/entity/User.java
new file mode 100644
index 0000000..b7660d2
--- /dev/null
+++ b/src/main/java/files/entity/User.java
@@ -0,0 +1,31 @@
+package files.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+@Entity
+public class User {
+ @Id
+ private long id;
+
+ private String login;
+
+ public User() {}
+
+ public User(long id) {
+ this.id = id;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+}
diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 0000000..7798194
--- /dev/null
+++ b/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+ version="2.0">
+
+ <persistence-unit name="animarfo" transaction-type="RESOURCE_LOCAL">
+ <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
+
+ <class>files.entity.User</class>
+
+ <properties>
+ <property name="hibernate.ogm.datastore.provider" value="mongodb"/>
+ <property name="hibernate.ogm.datastore.database" value="animarfo"/>
+ <property name="hibernate.ogm.datastore.host" value="localhost"/>
+ <property name="hibernate.ogm.datastore.create_database" value="true"/>
+ </properties>
+ </persistence-unit>
+
+</persistence> \ No newline at end of file