diff options
author | mavlonerkinboev <mavlonbek.ibragimov007@gmail.com> | 2021-07-22 18:23:31 +0500 |
---|---|---|
committer | mavlonerkinboev <mavlonbek.ibragimov007@gmail.com> | 2021-07-22 18:23:31 +0500 |
commit | cf3a45e8dac64da2482730309d99393826b0a300 (patch) | |
tree | 2d65527461b982f033f4176a127bb12c4b4e0b8d | |
parent | 6cf764da0da43bd84851181367dc17de3dbdcb82 (diff) |
third commit
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | build.gradle | 8 | ||||
-rw-r--r-- | src/main/java/files/App.java | 43 | ||||
-rw-r--r-- | src/main/java/files/entity/User.java | 31 | ||||
-rw-r--r-- | src/main/resources/META-INF/persistence.xml | 20 |
5 files changed, 101 insertions, 6 deletions
@@ -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 |