diff options
| -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 |