Compare commits
20 Commits
44fac33255
...
97122552e8
Author | SHA1 | Date | |
---|---|---|---|
97122552e8 | |||
13f4d8c368 | |||
a399ffc2b1 | |||
cb2988a437 | |||
3fe0e701d3 | |||
e0553f529c | |||
4256e7fb61 | |||
9bdc639203 | |||
933d4811b7 | |||
d54091054d | |||
db00b6b135 | |||
7b9785e1c1 | |||
4a2e46606c | |||
d9aa081985 | |||
8136ed243c | |||
8cbb53e39b | |||
51df6a1b87 | |||
5ac841011f | |||
bccafc3faf | |||
17c8cf1848 |
@ -104,7 +104,8 @@ name: create-docs-site
|
|||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- develop
|
- docs
|
||||||
|
- master
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build site
|
- name: build site
|
||||||
@ -128,12 +129,13 @@ steps:
|
|||||||
- chmod 600 ~/.ssh/id_rsa
|
- chmod 600 ~/.ssh/id_rsa
|
||||||
- ssh-keyscan -p $SSH_DEPLOY_PORT $SSH_DEPLOY_HOST >> ~/.ssh/known_hosts
|
- ssh-keyscan -p $SSH_DEPLOY_PORT $SSH_DEPLOY_HOST >> ~/.ssh/known_hosts
|
||||||
- chmod 644 ~/.ssh/known_hosts
|
- chmod 644 ~/.ssh/known_hosts
|
||||||
|
- cd documentation
|
||||||
- mkdocs build
|
- mkdocs build
|
||||||
- mv site godfather-telegram-bot
|
- mv site godfather-telegram
|
||||||
- scp -r -P $SSH_DEPLOY_PORT ./godfather-telegram $SSH_DEPLOY_USER@$SSH_DEPLOY_HOST:$SSH_DEPLOY_PATH
|
- scp -r -P $SSH_DEPLOY_PORT ./godfather-telegram $SSH_DEPLOY_USER@$SSH_DEPLOY_HOST:$SSH_DEPLOY_PATH
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: 8b702ec5869930b1fa64819a41e1ab8feeb2b4e75ddcf87299377ede4a22b0e6
|
hmac: f572c63a70de0e0b94dda125006e3fc0e2b29ccd318034c7e4193c0c2bee70b2
|
||||||
|
|
||||||
...
|
...
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -77,4 +77,4 @@ com_crashlytics_export_strings.xml
|
|||||||
crashlytics.properties
|
crashlytics.properties
|
||||||
crashlytics-build.properties
|
crashlytics-build.properties
|
||||||
fabric.properties
|
fabric.properties
|
||||||
/site/
|
/documentation/site/
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
hide:
|
|
||||||
|
|
||||||
- navigation
|
|
||||||
title: Home
|
|
||||||
|
|
||||||
---
|
|
BIN
documentation/docs/assets/favicon.ico
Normal file
BIN
documentation/docs/assets/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
0
documentation/docs/getting-started/configuration.md
Normal file
0
documentation/docs/getting-started/configuration.md
Normal file
122
documentation/docs/getting-started/installing-dependencies.md
Normal file
122
documentation/docs/getting-started/installing-dependencies.md
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
---
|
||||||
|
hide:
|
||||||
|
- toc
|
||||||
|
---
|
||||||
|
# Варианты добавления в проект
|
||||||
|
Есть несколько вариантов добавить фреймворк в проект. Изучите их все и выберете подходящий под ваши задачи.
|
||||||
|
|
||||||
|
## Spring Boot Starter
|
||||||
|
Самый простой способ, если у вас небольшой монолитный Spring Boot проект.
|
||||||
|
|
||||||
|
=== ":simple-apachemaven: Maven"
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<dependency>
|
||||||
|
<groupId>dev.struchkov.godfather.telegram</groupId>
|
||||||
|
<artifactId>telegram-bot-spring-boot-starter</artifactId>
|
||||||
|
<version>0.0.50-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":simple-gradle: Gradle"
|
||||||
|
|
||||||
|
``` c++
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
std::cout << "Hello world!" << std::endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quarkus Extension
|
||||||
|
|
||||||
|
На данный момент раздел находится в разработке.
|
||||||
|
|
||||||
|
=== ":simple-apachemaven: Maven"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":simple-gradle: Gradle"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Reactive
|
||||||
|
|
||||||
|
На данный момент раздел находится в разработке.
|
||||||
|
|
||||||
|
## Основные зависимости проекта
|
||||||
|
Вы можете добавить основные зависимости в свой проект и сконфигурировать его более тонко под ваши нужды. Однако для этого потребуется хорошее знание архитектуры проекта.
|
||||||
|
|
||||||
|
Этот вариант подойдет вам, если у вас используется микросервисная архитектура. Так как логично разделить стадии получения, обработки и отправки сообщений на разные сервисы.
|
||||||
|
|
||||||
|
Также этот вариант подойдет вам, если вы используете менее популярный фреймворк, так как основные зависимости написаны без привязки к какому-то конкретному фреймворку.
|
||||||
|
|
||||||
|
Всего основных зависимостей три:
|
||||||
|
|
||||||
|
=== ":simple-spring: Spring"
|
||||||
|
Эти зависимости подойдут вам, если вы используете SpringBoot 3.0.0+
|
||||||
|
|
||||||
|
=== ":simple-apachemaven: Maven"
|
||||||
|
|
||||||
|
``` xml title="Позволяет получать сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Содержит всю логику работы"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Позволяет отправлять сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":simple-gradle: Gradle"
|
||||||
|
|
||||||
|
``` xml title="Позволяет получать сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Содержит всю логику работы"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Позволяет отправлять сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":simple-quarkus: Quarkus"
|
||||||
|
|
||||||
|
Эти зависимости подойдут вам, если вы используете Quarkus 2.16.0+
|
||||||
|
|
||||||
|
=== ":simple-apachemaven: Maven"
|
||||||
|
|
||||||
|
``` xml title="Позволяет получать сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Содержит всю логику работы"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Позволяет отправлять сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":simple-gradle: Gradle"
|
||||||
|
|
||||||
|
``` xml title="Позволяет получать сообщения"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Содержит всю логику работы"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
``` xml title="Позволяет отправлять сообщения"
|
||||||
|
|
||||||
|
```
|
9
documentation/docs/index.md
Normal file
9
documentation/docs/index.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
hide:
|
||||||
|
- navigation
|
||||||
|
- comments
|
||||||
|
title: Home
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Godfather Telegram – Фреймворк для создания Telegram ботов
|
95
documentation/mkdocs.yml
Normal file
95
documentation/mkdocs.yml
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
site_name: GodFather Telegram
|
||||||
|
site_url: https://docs.struchkov.dev/godfather-telegram/
|
||||||
|
|
||||||
|
repo_url: https://github.com/Godfather-Bots/telegram-bot
|
||||||
|
repo_name: Godfather-Bots/telegram-bot
|
||||||
|
|
||||||
|
copyright: Copyright © 2018 - 2023 Struchkov Mark
|
||||||
|
#edit_uri: edit/master/documentation/docs
|
||||||
|
|
||||||
|
nav:
|
||||||
|
- 'index.md'
|
||||||
|
- 'Быстрый старт':
|
||||||
|
- 'getting-started/installing-dependencies.md'
|
||||||
|
- 'getting-started/configuration.md'
|
||||||
|
# - 'Гайды':
|
||||||
|
- 'Архитектура':
|
||||||
|
- 'architecture/concept.md'
|
||||||
|
# - 'ChangeLog':
|
||||||
|
|
||||||
|
theme:
|
||||||
|
name: material
|
||||||
|
custom_dir: overrides
|
||||||
|
language: ru
|
||||||
|
favicon: assets/favicon.ico
|
||||||
|
icon:
|
||||||
|
logo: simple/telegram
|
||||||
|
repo: fontawesome/brands/github
|
||||||
|
palette:
|
||||||
|
- scheme: default
|
||||||
|
primary: light blue
|
||||||
|
accent: indigo
|
||||||
|
toggle:
|
||||||
|
icon: material/brightness-7
|
||||||
|
name: Switch to dark mode
|
||||||
|
- scheme: slate
|
||||||
|
toggle:
|
||||||
|
icon: material/brightness-4
|
||||||
|
name: Switch to light mode
|
||||||
|
|
||||||
|
features:
|
||||||
|
- navigation.instant
|
||||||
|
- navigation.indexes
|
||||||
|
- navigation.sections
|
||||||
|
- navigation.tracking
|
||||||
|
- navigation.tabs
|
||||||
|
- navigation.tabs.sticky
|
||||||
|
- navigation.footer
|
||||||
|
- search
|
||||||
|
- search.suggest
|
||||||
|
- search.highlight
|
||||||
|
- content.action.edit
|
||||||
|
- content.code.copy
|
||||||
|
- toc.follow
|
||||||
|
plugins:
|
||||||
|
- social
|
||||||
|
- meta
|
||||||
|
- tags
|
||||||
|
- search:
|
||||||
|
lang: ru
|
||||||
|
- git-revision-date-localized:
|
||||||
|
enable_creation_date: true
|
||||||
|
markdown_extensions:
|
||||||
|
- toc:
|
||||||
|
permalink: true
|
||||||
|
toc_depth: 3
|
||||||
|
title: Содержание
|
||||||
|
- pymdownx.highlight:
|
||||||
|
anchor_linenums: true
|
||||||
|
- pymdownx.superfences:
|
||||||
|
custom_fences:
|
||||||
|
- name: mermaid
|
||||||
|
class: mermaid
|
||||||
|
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||||
|
- pymdownx.snippets
|
||||||
|
- pymdownx.inlinehilite
|
||||||
|
- pymdownx.details
|
||||||
|
- pymdownx.smartsymbols
|
||||||
|
- pymdownx.betterem
|
||||||
|
- pymdownx.tabbed:
|
||||||
|
alternate_style: true
|
||||||
|
- pymdownx.emoji:
|
||||||
|
emoji_index: !!python/name:materialx.emoji.twemoji
|
||||||
|
emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||||
|
|
||||||
|
extra:
|
||||||
|
generator: false
|
||||||
|
analytics:
|
||||||
|
provider: custom
|
||||||
|
property: foobar
|
||||||
|
version:
|
||||||
|
provider: mike
|
||||||
|
# alternate:
|
||||||
|
# - name: Русский
|
||||||
|
# link: /ru/
|
||||||
|
# lang: ru
|
17
documentation/overrides/partials/comments.html
Normal file
17
documentation/overrides/partials/comments.html
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{% if "comments" in page.meta.hide %}
|
||||||
|
{% else %}
|
||||||
|
<h2 id="__comments" >{{ lang.t("meta.comments") }}</h2>
|
||||||
|
<div id="remark42"></div>
|
||||||
|
<script>
|
||||||
|
var remark_config = {
|
||||||
|
host: "https://comments.struchkov.dev",
|
||||||
|
site_id: 'docs',
|
||||||
|
components: ['embed'],
|
||||||
|
locale: 'ru',
|
||||||
|
theme: localStorage.theme,
|
||||||
|
show_email_subscription: true,
|
||||||
|
simple_view: false
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>
|
||||||
|
{% endif %}
|
@ -0,0 +1,16 @@
|
|||||||
|
<!-- Yandex.Metrika counter -->
|
||||||
|
<script type="text/javascript" >
|
||||||
|
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||||
|
m[i].l=1*new Date();
|
||||||
|
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
|
||||||
|
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
|
||||||
|
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
|
||||||
|
|
||||||
|
ym(92567341, "init", {
|
||||||
|
clickmap:true,
|
||||||
|
trackLinks:true,
|
||||||
|
accurateTrackBounce:true
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<noscript><div><img src="https://mc.yandex.ru/watch/92567215" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||||
|
<!-- /Yandex.Metrika counter -->
|
55
mkdocs.yml
55
mkdocs.yml
@ -1,55 +0,0 @@
|
|||||||
site_name: GodFather Telegram
|
|
||||||
|
|
||||||
repo_url: https://github.com/Godfather-Bots/telegram-bot
|
|
||||||
repo_name: Godfather-Bots/telegram-bot
|
|
||||||
#edit_uri: blob/develop/docs/
|
|
||||||
|
|
||||||
theme:
|
|
||||||
name: material
|
|
||||||
language: ru
|
|
||||||
icon:
|
|
||||||
repo: fontawesome/brands/github
|
|
||||||
palette:
|
|
||||||
# Palette toggle for light mode
|
|
||||||
- scheme: default
|
|
||||||
primary: light blue
|
|
||||||
accent: indigo
|
|
||||||
toggle:
|
|
||||||
icon: material/brightness-7
|
|
||||||
name: Switch to dark mode
|
|
||||||
|
|
||||||
# Palette toggle for dark mode
|
|
||||||
- scheme: slate
|
|
||||||
toggle:
|
|
||||||
icon: material/brightness-4
|
|
||||||
name: Switch to light mode
|
|
||||||
|
|
||||||
features:
|
|
||||||
- navigation.sections
|
|
||||||
- navigation.tabs
|
|
||||||
- navigation.tabs.sticky
|
|
||||||
- content.action.edit
|
|
||||||
- search
|
|
||||||
- search.suggest
|
|
||||||
- search.highlight
|
|
||||||
- toc.follow
|
|
||||||
plugins:
|
|
||||||
- meta
|
|
||||||
- tags
|
|
||||||
- blog:
|
|
||||||
blog_dir: ./blog
|
|
||||||
- search:
|
|
||||||
lang: ru
|
|
||||||
- git-revision-date-localized:
|
|
||||||
enable_creation_date: true
|
|
||||||
markdown_extensions:
|
|
||||||
- toc:
|
|
||||||
permalink: true
|
|
||||||
toc_depth: 3
|
|
||||||
title: Содержание
|
|
||||||
|
|
||||||
#extra:
|
|
||||||
# alternate:
|
|
||||||
# - name: Русский
|
|
||||||
# link: /ru/
|
|
||||||
# lang: ru
|
|
@ -8,4 +8,8 @@ public interface TelegramService {
|
|||||||
|
|
||||||
Uni<Void> executeAction(@NotNull String personId, ChatAction chatAction);
|
Uni<Void> executeAction(@NotNull String personId, ChatAction chatAction);
|
||||||
|
|
||||||
|
Uni<Void> pinMessage(@NotNull String personId, @NotNull String messageId);
|
||||||
|
|
||||||
|
Uni<Void> unPinMessage(@NotNull String personId, @NotNull String messageId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,4 +7,8 @@ public interface TelegramService {
|
|||||||
|
|
||||||
void executeAction(@NotNull String personId, ChatAction chatAction);
|
void executeAction(@NotNull String personId, ChatAction chatAction);
|
||||||
|
|
||||||
|
void pinMessage(@NotNull String personId, @NotNull String messageId);
|
||||||
|
|
||||||
|
void unPinMessage(@NotNull String personId, @NotNull String messageId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,12 +8,15 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.telegram.telegrambots.meta.api.methods.ActionType;
|
import org.telegram.telegrambots.meta.api.methods.ActionType;
|
||||||
|
import org.telegram.telegrambots.meta.api.methods.pinnedmessages.PinChatMessage;
|
||||||
|
import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinChatMessage;
|
||||||
import org.telegram.telegrambots.meta.api.methods.send.SendChatAction;
|
import org.telegram.telegrambots.meta.api.methods.send.SendChatAction;
|
||||||
import org.telegram.telegrambots.meta.bots.AbsSender;
|
import org.telegram.telegrambots.meta.bots.AbsSender;
|
||||||
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
||||||
import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
|
import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
|
||||||
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.CompletionStage;
|
||||||
|
|
||||||
public class TelegramServiceImpl implements TelegramService {
|
public class TelegramServiceImpl implements TelegramService {
|
||||||
|
|
||||||
@ -35,6 +38,48 @@ public class TelegramServiceImpl implements TelegramService {
|
|||||||
.replaceWithVoid();
|
.replaceWithVoid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Uni<Void> pinMessage(@NotNull String personId, @NotNull String messageId) {
|
||||||
|
final PinChatMessage pinChatMessage = new PinChatMessage();
|
||||||
|
pinChatMessage.setChatId(personId);
|
||||||
|
pinChatMessage.setMessageId(Integer.parseInt(messageId));
|
||||||
|
|
||||||
|
return Uni.createFrom().completionStage(getExecuteAsync(pinChatMessage))
|
||||||
|
.replaceWithVoid();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Uni<Void> unPinMessage(@NotNull String personId, @NotNull String messageId) {
|
||||||
|
final UnpinChatMessage unpinChatMessage = new UnpinChatMessage();
|
||||||
|
unpinChatMessage.setChatId(personId);
|
||||||
|
unpinChatMessage.setMessageId(Integer.parseInt(messageId));
|
||||||
|
|
||||||
|
return Uni.createFrom().completionStage(getExecuteAsync(unpinChatMessage))
|
||||||
|
.replaceWithVoid();
|
||||||
|
}
|
||||||
|
|
||||||
|
private CompletableFuture<Boolean> getExecuteAsync(UnpinChatMessage unpinChatMessage) {
|
||||||
|
try {
|
||||||
|
return absSender.executeAsync(unpinChatMessage);
|
||||||
|
} catch (TelegramApiRequestException e) {
|
||||||
|
log.error(e.getApiResponse());
|
||||||
|
} catch (TelegramApiException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
return CompletableFuture.completedFuture(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private CompletionStage<Boolean> getExecuteAsync(PinChatMessage pinChatMessage) {
|
||||||
|
try {
|
||||||
|
return absSender.executeAsync(pinChatMessage);
|
||||||
|
} catch (TelegramApiRequestException e) {
|
||||||
|
log.error(e.getApiResponse());
|
||||||
|
} catch (TelegramApiException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
return CompletableFuture.completedFuture(null);
|
||||||
|
}
|
||||||
|
|
||||||
private CompletableFuture<Boolean> getExecuteAsync(SendChatAction sendChatAction) {
|
private CompletableFuture<Boolean> getExecuteAsync(SendChatAction sendChatAction) {
|
||||||
try {
|
try {
|
||||||
return absSender.executeAsync(sendChatAction);
|
return absSender.executeAsync(sendChatAction);
|
||||||
|
@ -7,6 +7,8 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.telegram.telegrambots.meta.api.methods.ActionType;
|
import org.telegram.telegrambots.meta.api.methods.ActionType;
|
||||||
|
import org.telegram.telegrambots.meta.api.methods.pinnedmessages.PinChatMessage;
|
||||||
|
import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinChatMessage;
|
||||||
import org.telegram.telegrambots.meta.api.methods.send.SendChatAction;
|
import org.telegram.telegrambots.meta.api.methods.send.SendChatAction;
|
||||||
import org.telegram.telegrambots.meta.bots.AbsSender;
|
import org.telegram.telegrambots.meta.bots.AbsSender;
|
||||||
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
||||||
@ -36,4 +38,32 @@ public class TelegramServiceImpl implements TelegramService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pinMessage(@NotNull String personId, @NotNull String messageId) {
|
||||||
|
final PinChatMessage pinChatMessage = new PinChatMessage();
|
||||||
|
pinChatMessage.setChatId(personId);
|
||||||
|
pinChatMessage.setMessageId(Integer.parseInt(messageId));
|
||||||
|
try {
|
||||||
|
absSender.execute(pinChatMessage);
|
||||||
|
} catch (TelegramApiRequestException e) {
|
||||||
|
log.error(e.getApiResponse());
|
||||||
|
} catch (TelegramApiException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void unPinMessage(@NotNull String personId, @NotNull String messageId) {
|
||||||
|
final UnpinChatMessage unpinChatMessage = new UnpinChatMessage();
|
||||||
|
unpinChatMessage.setChatId(personId);
|
||||||
|
unpinChatMessage.setMessageId(Integer.parseInt(messageId));
|
||||||
|
try {
|
||||||
|
absSender.execute(unpinChatMessage);
|
||||||
|
} catch (TelegramApiRequestException e) {
|
||||||
|
log.error(e.getApiResponse());
|
||||||
|
} catch (TelegramApiException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user