From 8ffbbd6d0822db421b82941724a713fff23303d3 Mon Sep 17 00:00:00 2001 From: AM Date: Wed, 30 Mar 2022 09:55:07 +0200 Subject: [PATCH] Paypallinkdeaktiviert. --- .../hertlhendl/HertlHendlBot.java | 220 +++++++++--------- .../builder/TelegramKeyBoardBuilder.java | 8 +- 2 files changed, 114 insertions(+), 114 deletions(-) diff --git a/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/HertlHendlBot.java b/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/HertlHendlBot.java index 61b0d4d..9c918ee 100644 --- a/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/HertlHendlBot.java +++ b/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/HertlHendlBot.java @@ -24,7 +24,6 @@ import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; -import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; @@ -70,7 +69,7 @@ public class HertlHendlBot extends AbilityBot { - + public static final String ABILITY_NAME_START = "start"; public static final String ABILITY_NAME_HELP = "help"; public static final String ABILITY_NAME_LOCATION_PHOTO = "standortefoto"; @@ -86,41 +85,42 @@ public class HertlHendlBot extends AbilityBot public static final String ABILITY_NAME_ADMIN_CLOSE_ORDERS = "admincloseorders"; public static final String ABILITY_NAME_CLOSE_ORDER = "closeorder"; public static final String ABILITY_NAME_COMMIT_ORDER = "commitorder"; - public static final String ABILITY_NAME_PAYPAL_LINK = "paypallink"; - + //NOTE: herausfinden wie das auch mit Freunden funktioniert. + // public static final String ABILITY_NAME_PAYPAL_LINK = "paypallink"; + private static final String MESSAGE_CLOSE_SUCCESSFULL = "Die Bestellung wurde erfolgreich geschlossen."; private static final String ALL_MESSAGE_CLOSE_SUCCESSFULL = "Alle offenen Bestellungen wurde erfolgreich geschlossen."; private static final String MESSAGE_CLOSE_ALREADY_CLOSED = "Die Bestellung ist bereits geschlossen."; private static final String MESSAGE_ALREADY_COMMITED = "Die Bestellung wurde bereits bestätigt"; private static final String MESSAGE_COMMIT_SUCCESSFULL = "Die Bestellung wurde erfolgreich bestätigt"; - + private static final String HENDL_PREISE_JPG = "hendl_preise.jpg"; private static final String HENDL_LOCATION_JPG = "hendl_location.jpg"; private final static Logger LOG = LoggerFactory.getLogger(HertlHendlBot.class); private final static String BOT_TOKEN = ""; private final static String BOT_USERNAME = ""; private final static String ADMIN_DEFAULT_NAME = "Admin"; - + private static Integer CREATOR_ID = 0; private static String HERTL_URL = "http://ks3266365.kimsufi.com:2341/?url=https://hertel-haehnchen.de/standplatzsuche?search=92637"; private static HertlBotRootDao hertlBotDao; - + private final TelegramKeyBoardBuilder keyBoardBuilder; private final RightController rightController; private final RoleController roleController; private final Long creatorId; - + private String creatorPayPalEmail =""; private final PaypalLinkGenerator payPalGenerator = new PaypalLinkGenerator(); - - + + public static void main(final String[] args) throws ParserConfigurationException, SAXException, IOException, URISyntaxException, TelegramApiException { LOG.info("HertlHendlBot starting"); - + final String token = args[0] != null ? args[0] : BOT_TOKEN; final String username = args[1] != null ? args[1] : BOT_USERNAME; final Long creatorId = args[2] != null ? Long.valueOf(args[2]) : CREATOR_ID; @@ -130,7 +130,7 @@ public static void main(final String[] args) api.registerBot(bot); LOG.info("HertlHendlBot successfull started"); } - + public HertlHendlBot(final String botToken, final String botUsername, Long creatorId, String creatorPayPalEmail) throws ParserConfigurationException, SAXException, IOException, URISyntaxException { @@ -144,7 +144,7 @@ public HertlHendlBot(final String botToken, final String botUsername, Long creat this.creatorPayPalEmail = creatorPayPalEmail; this.initAdminUser(); } - + private void initAdminUser() { final Optional optAdminUser = hertlBotDao.root().users().all().stream().filter( @@ -155,13 +155,13 @@ private void initAdminUser() new HertlBotUser(this.creatorId, ADMIN_DEFAULT_NAME), HertlBotRootDao.storageManager())); } - + @Override public long creatorId() { return this.creatorId; } - + public Ability showStart() { return Ability.builder().name(ABILITY_NAME_START).info("shows at start").locality(ALL).privacy(PUBLIC).action( @@ -170,7 +170,7 @@ public Ability showStart() this.doHelpAction(context); }).build(); } - + public Ability showHelp() { return Ability.builder().name(ABILITY_NAME_HELP).info("shows help").locality(ALL).privacy(PUBLIC).action( @@ -179,7 +179,7 @@ public Ability showHelp() this.doHelpAction(context); }).build(); } - + private void doHelpAction(MessageContext context) { if(this.roleController.canUseAbility(context.user(), ABILITY_NAME_HELP)) @@ -191,7 +191,7 @@ private void doHelpAction(MessageContext context) this.silent.execute(message); } } - + public Ability showOrder() { return Ability.builder().name(ABILITY_NAME_ORDER).info("zeigt eine bestimmte Bestellung").locality(ALL).privacy( @@ -210,22 +210,22 @@ public Ability showOrder() final String messageText = bestellung.toString() + System.lineSeparator() + "Füge Positionen zu deiner Bestellung hinzu"; - + message.setText(messageText); - + final ReplyKeyboardMarkup keyboardMarkup = new ReplyKeyboardMarkup(); final List keyboard = this.keyBoardBuilder.loadAndShowAllArticleForOrder(context.chatId(), bestellId); - + // activate the keyboard keyboardMarkup.setKeyboard(keyboard); message.setReplyMarkup(keyboardMarkup); - + this.silent.execute(message); } }).build(); } - + public Ability showArticle() { return Ability.builder().name(ABILITY_NAME_ITEM_LIST).info("Listet alle Artikel auf").locality(ALL).privacy( @@ -240,7 +240,7 @@ public Ability showArticle() } }).build(); } - + public Ability showMyOrders() { return Ability.builder().name(ABILITY_NAME_LIST_MY_ORDERS).info("Zeigt die eigenen Bestellungen").locality( @@ -260,7 +260,7 @@ public Ability showMyOrders() } }).build(); } - + public Ability showAdminOpenOrders() { return Ability.builder().name(ABILITY_NAME_ADMIN_OPEN_ORDERS).info( @@ -272,12 +272,12 @@ public Ability showAdminOpenOrders() final SendMessage message = new SendMessage(); message.setChatId(Long.toString(context.chatId())); message.setText(OrderHelper.getOrdersAsString(hertlBotDao.loadOpenOrdersForToday())); - + this.silent.execute(message); } }).build(); } - + public Ability showAdminSumOrder() { return Ability.builder().name(ABILITY_NAME_ADMIN_SUM_ORDER).info("Zeigt die Gesamt-Bestellung").locality( @@ -288,12 +288,12 @@ public Ability showAdminSumOrder() final SendMessage message = new SendMessage(); message.setChatId(Long.toString(context.chatId())); message.setText(OrderHelper.getTotalOrder(hertlBotDao.loadOpenOrdersForToday()).toString()); - + this.silent.execute(message); } }).build(); } - + public Ability adminCloseOrders() { return Ability.builder().name(ABILITY_NAME_ADMIN_CLOSE_ORDERS).info( @@ -312,7 +312,7 @@ public Ability adminCloseOrders() messageClosed.setText("Der Admin hat deine Bestellung gerade abgeholt."); this.silent.execute(messageClosed); });; - + final SendMessage message = new SendMessage(); message.setText(ALL_MESSAGE_CLOSE_SUCCESSFULL); message.setChatId(Long.toString(context.chatId())); @@ -320,10 +320,10 @@ public Ability adminCloseOrders() } }).build(); } - + public Ability showMyOrderKeyBoard() { - + return Ability.builder().name(ABILITY_NAME_MY_ORDERS_AS_KEYBOARD).info( "Zeigt die eigenen Bestellungen als keyboard").locality(ALL).privacy(PUBLIC).action(context -> { @@ -332,18 +332,18 @@ public Ability showMyOrderKeyBoard() final SendMessage message = new SendMessage(); message.setChatId(Long.toString(context.chatId())); message.setText("Öffne die Bestellungen über die Tastatur: "); - + final ReplyKeyboardMarkup keyboardMarkup = this.keyBoardBuilder.buildOrderMarkup(context); message.setReplyMarkup(keyboardMarkup); - + this.silent.execute(message); } }).build(); } - + public Ability createNewOrder() { - + return Ability.builder().name(ABILITY_NAME_NEW_ORDER).info("Erstellt eine neue Bestellung").locality( ALL).privacy(PUBLIC).action(context -> { @@ -361,10 +361,10 @@ public Ability createNewOrder() } }).build(); } - + public Ability addPositionToOrder() { - + return Ability.builder().name(ABILITY_NAME_ADD_POSITION).info( "Fügt eine Position zu einer Bestellung hinzu").locality(ALL).privacy(PUBLIC).input(2).action(context -> { @@ -382,7 +382,7 @@ public Ability addPositionToOrder() } }).build(); } - + public Ability sendKeyboard() { return Ability.builder().name("keyboard").info("send a custom keyboard").locality(ALL).privacy(PUBLIC).action( @@ -393,28 +393,28 @@ public Ability sendKeyboard() final SendMessage message = new SendMessage(); message.setChatId(Long.toString(context.chatId())); message.setText("Enjoy this wonderful keyboard!"); - + final ReplyKeyboardMarkup keyboardMarkup = new ReplyKeyboardMarkup(); final List keyboard = new ArrayList<>(); - + // row 1 final KeyboardRow row = new KeyboardRow(); row.add(this.keyBoardBuilder.createKeyForAbility(ABILITY_NAME_PRICES_PHOTO)); row.add(this.keyBoardBuilder.createKeyForAbility(ABILITY_NAME_LOCATION_PHOTO)); keyboard.add(row); - + // activate the keyboard keyboardMarkup.setKeyboard(keyboard); message.setReplyMarkup(keyboardMarkup); - + this.silent.execute(message); } }).build(); } - + public Ability closeOrderAbility() { - + return Ability.builder().name(ABILITY_NAME_CLOSE_ORDER).info("Schließt die Bestellung ab.").locality( ALL).privacy(PUBLIC).input(1).action(context -> { @@ -428,19 +428,19 @@ public Ability closeOrderAbility() bestellId); final SendMessage message = new SendMessage(); message.setChatId(Long.toString(context.chatId())); - + this.closeOrder(bestellung, message); - + this.silent.execute(message); } }).build(); } - + private void closeOrder(final HertlBotOrder bestellung, final SendMessage message) { if(bestellung.isClosed()) { - + message.setText(MESSAGE_CLOSE_ALREADY_CLOSED); } else @@ -450,10 +450,10 @@ private void closeOrder(final HertlBotOrder bestellung, final SendMessage messag message.setText(MESSAGE_CLOSE_SUCCESSFULL); } } - + public Ability commitOrder() { - + return Ability.builder().name(ABILITY_NAME_COMMIT_ORDER).info("Bestätigt die Bestellung.").locality( ALL).privacy(PUBLIC).input(1).action(context -> { @@ -467,10 +467,10 @@ public Ability commitOrder() bestellId); final SendMessage message = new SendMessage(); message.setChatId(Long.toString(context.chatId())); - + if(bestellung.isCommited()) { - + message.setText(MESSAGE_ALREADY_COMMITED); } else @@ -478,7 +478,7 @@ public Ability commitOrder() bestellung.setCommited(true); HertlBotRootDao.storageManager().store(bestellung); message.setText(MESSAGE_COMMIT_SUCCESSFULL); - + final SendMessage messageAdmin = new SendMessage(); messageAdmin.setChatId(Long.toString(this.creatorId())); messageAdmin.setText("Neue Bstellung wurde auf gegeben.\n /" + ABILITY_NAME_ADMIN_OPEN_ORDERS); @@ -490,14 +490,14 @@ public Ability commitOrder() { LOG.error("Fehler beim senden der AdminNachricht."); } - + } - + this.silent.execute(message); } }).build(); } - + public Ability showPricePhoto() { return Ability.builder().name(ABILITY_NAME_PRICES_PHOTO).info("send Preisfoto").locality(ALL).privacy( @@ -509,7 +509,7 @@ public Ability showPricePhoto() } }).build(); } - + public Ability showLocationPhoto() { return Ability.builder().name(ABILITY_NAME_LOCATION_PHOTO).info("standorteFoto Weiden").locality(ALL).privacy( @@ -524,42 +524,42 @@ public Ability showLocationPhoto() } }).build(); } - - public Ability showPayPalLink() - { - return Ability.builder().name(ABILITY_NAME_PAYPAL_LINK).info("PaypalLink").locality( - ALL).privacy(PUBLIC).input(1).action(context -> - { - //TOFDO nur mit Recht dazu - - final int bestellId = Integer.parseInt(context.firstArg()); - final Long chatId = context.chatId(); - final HertlBotOrder bestellung = hertlBotDao.loadBestellung( - chatId, - TelegramHelper.getTotalUserName(context.user()), - bestellId); - //TODO logik for closed Order - - final SendMessage message = new SendMessage(); - message.setChatId(Long.toString(context.chatId())); - try - { - message.setText(this.payPalGenerator.generatePayPalLinkForOrder(bestellung, this.creatorPayPalEmail).toString()); - this.silent.execute(message); - } - catch(final MalformedURLException e) - { - e.printStackTrace(); - LOG.error("Fehler beim genieren PayPalLink:{}", e); - } - - + // public Ability showPayPalLink() + // { + // return Ability.builder().name(ABILITY_NAME_PAYPAL_LINK).info("PaypalLink").locality( + // ALL).privacy(PUBLIC).input(1).action(context -> + // { + // //TOFDO nur mit Recht dazu + // + // final int bestellId = Integer.parseInt(context.firstArg()); + // final Long chatId = context.chatId(); + // final HertlBotOrder bestellung = hertlBotDao.loadBestellung( + // chatId, + // TelegramHelper.getTotalUserName(context.user()), + // bestellId); + // //TODO logik for closed Order + // + // final SendMessage message = new SendMessage(); + // message.setChatId(Long.toString(context.chatId())); + // try + // { + // message.setText(this.payPalGenerator.generatePayPalLinkForOrder(bestellung, this.creatorPayPalEmail).toString()); + // this.silent.execute(message); + // } + // catch(final MalformedURLException e) + // { + // e.printStackTrace(); + // LOG.error("Fehler beim genieren PayPalLink:{}", e); + // } + // + // + // + // + // + // }).build(); + // } - - }).build(); - } - private void sendPhotoFromUpload(final InputStream is, String fileName, final Long chatId) { final SendPhoto sendPhotoRequest = new SendPhoto(); // 1 @@ -572,7 +572,7 @@ private void sendPhotoFromUpload(final InputStream is, String fileName, final Lo { LOG.error("Fehler beim schicken des Photos:{}", e1); } - + try { this.execute(sendPhotoRequest); // 4 @@ -582,7 +582,7 @@ private void sendPhotoFromUpload(final InputStream is, String fileName, final Lo LOG.error("Fehler beim schicken des Photos:{}", e); } } - + private void sendPhotoFromUpload(final String filePath, final Long chatId) { try @@ -593,9 +593,9 @@ private void sendPhotoFromUpload(final String filePath, final Long chatId) { LOG.error("Fehler beim schicken des Photos:{}", e); } - + } - + /** * Make an Screenshot of the Hmepage with docker. Works only on Linux * @@ -605,33 +605,33 @@ private InputStream makingScreenshotOfHertlHomepage() { try { - + final URL u = new URL(HERTL_URL); - + return u.openStream(); - + } catch(final IOException e) { LOG.error("{}", e); } - + return null; - + } - + @VisibleForTesting void setSender(final MessageSender sender) { this.sender = sender; } - + @VisibleForTesting void setSilent(final SilentSender silent) { this.silent = silent; } - + private String createPositionForOrder( final String artikelName, final Long chatId, @@ -641,17 +641,17 @@ private String createPositionForOrder( final HertlBotArticle artikel = hertlBotDao.root().artikels().ofName(artikelName); final HertlBotOrder bestellung = hertlBotDao.loadBestellung(chatId, userName, bestellungId); OrderHelper.addArticleToOrder(artikel, BigInteger.valueOf(1L), bestellung); - + return this.loadAndShowOrder(chatId, userName, bestellungId); - + } - + private String loadAndShowOrder(final Long chatId, String userName, final int bestellId) { final HertlBotOrder bestellung = hertlBotDao.loadBestellung(chatId, userName, bestellId); return bestellung.toString(); } - + public String loadAndShowMyOrder(final Long chatId, String userName) { final StringBuilder sb = new StringBuilder( @@ -664,7 +664,7 @@ public String loadAndShowMyOrder(final Long chatId, String userName) // formatter:on return sb.toString(); } - + private String loadAndShowAllArticle() { final StringBuilder sb = new StringBuilder(); @@ -672,5 +672,5 @@ private String loadAndShowAllArticle() artikel -> sb.append(artikel.toString()).append(System.lineSeparator())); return sb.toString(); } - + } diff --git a/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/builder/TelegramKeyBoardBuilder.java b/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/builder/TelegramKeyBoardBuilder.java index e2380e0..a8dcf12 100644 --- a/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/builder/TelegramKeyBoardBuilder.java +++ b/src/main/java/de/bigamgamen/java/telegrambots/hertlhendl/builder/TelegramKeyBoardBuilder.java @@ -49,10 +49,10 @@ public List loadAndShowAllArticleForOrder(final Long chatId, final row.add(new KeyboardButton(this.createKeyForAbility(HertlHendlBot.ABILITY_NAME_CLOSE_ORDER+" "+bestellungId))); keyboard.add(row); - //TODO erst wenn die order geliefert wurde. - row = new KeyboardRow(); - row.add(new KeyboardButton(this.createKeyForAbility(HertlHendlBot.ABILITY_NAME_PAYPAL_LINK+" "+bestellungId))); - keyboard.add(row); + //TODO erst wenn die order geliefert wurde. und das mit freunde zahlen geht + // row = new KeyboardRow(); + // row.add(new KeyboardButton(this.createKeyForAbility(HertlHendlBot.ABILITY_NAME_PAYPAL_LINK+" "+bestellungId))); + // keyboard.add(row); return keyboard; }