diff options
Diffstat (limited to 'src')
| -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 | 
3 files changed, 92 insertions, 2 deletions
| 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 |