Skip to content

Commit 9ca1144

Browse files
authored
Merge pull request #1 from k2589/develop
Подготовка релиза 0.0.5
2 parents 980a409 + 27033d6 commit 9ca1144

File tree

6 files changed

+165
-4
lines changed

6 files changed

+165
-4
lines changed

.gitlab-ci.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
image: evilbeaver/onescript
2+
3+
stages:
4+
- build
5+
- deploy
6+
7+
build:
8+
stage: build
9+
script:
10+
- grep '%ver' -P -R -I -l packagedef | xargs sed -i 's/%ver/'$CI_COMMIT_REF_NAME'/g'
11+
- mkdir ./build
12+
- opm build . -mf packagedef -out ./build
13+
artifacts:
14+
name: "$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME"
15+
paths:
16+
- $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME.ospx
17+
only:
18+
- tags
19+
20+
deploy to hub.oscript:
21+
stage: deploy
22+
variables:
23+
GIT_STRATEGY: none
24+
script:
25+
- cd ./build
26+
- opm push --token $GITHUB_TOKEN --file $CI_PROJECT_NAME-$CI_COMMIT_REF_NAME --channel stable
27+
artifacts:
28+
when: on_failure
29+
paths:
30+
- .
31+
expire_in: 1 day
32+
only:
33+
- tags

README.md

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
11
# telegrambot
2-
Библиотека для взаимодействия с Telegram Bot API
2+
Библиотека для взаимодействия с [Telegram Bot API](https://core.telegram.org/bots/api)
3+
4+
### Установка telegrambot
5+
----
6+
Первый способ - установить через opm:
7+
8+
```
9+
$ opm install telegrambot
10+
```
11+
12+
Второй способ - скачать нужный релиз (https://github.com/pallid/telegrambot/releasess) и установить вручную:
13+
14+
```
15+
$ opm install -f "path/to/file.ospx"
16+
```
17+
18+
где path/to/file.ospx - путь к файлу реализа пакета для onescript.
19+
20+
### Пример
21+
22+
[Пример](https://github.com/pallid/example-telegrambot) реализации telegram bot на oscript-web
23+
24+
[Демо бот](https://t.me/oswebbot?start)
25+
26+
Библиотека к вашему проекту подключается с помощью директивы #Использовать telegrambot. После этого в области видимости скрипта будет доступен класс ТелеграмБот и модуль ТелеграмАПИ:
327

4-
Пример
528
```
629
730
Бот = Новый ТелеграмБот;
@@ -61,4 +84,16 @@
6184
6285
```
6386

64-
На текущий момент реализовано получение данных только через WebHooks
87+
На текущий момент реализовано получение данных только через WebHooks.
88+
89+
Разработка ведется в репозитории [oscript-library/telegrambot](https://github.com/oscript-library/telegrambot) по Git Flow.
90+
Ждем ваши PR и Issues.
91+
92+
93+
94+
### Контрибьюторы:
95+
96+
| <img alt="Andreas Mehlsen" src="https://avatars1.githubusercontent.com/u/4147815?s=460&u=cec28755c1e7e9e2231e8bf34c30bede16e9759d&v=4" width="100"> | <img alt="Карим Шакиров" src="https://avatars2.githubusercontent.com/u/6420066?s=460&u=ba32acf3de4719bcb51819b0f494d9a05f8ca725&v=4" width="100">|
97+
|:--------------------------------------------------:|:--------------------------------------------------:|
98+
| [Василий Попов](https://github.com/pallid) | [Карим Шакиров](https://github.com/k2589) |
99+
|Создатель | Мейнтейнер |

opm-metadata.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<opm-metadata xmlns="http://oscript.io/schemas/opm-metadata/1.0">
33
<name>telegrambot</name>
4-
<version>0.0.3</version>
4+
<version>0.0.5</version>
55
<depends-on name="json" />
66
<depends-on name="logos" />
77
</opm-metadata>

packagedef

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Описание.Имя("telegrambot")
2+
.Версия("%ver")
3+
.ЗависитОт("json")
4+
.ЗависитОт("logos")
5+
.ВключитьФайл("src")
6+
.ВключитьФайл("lib.config")
7+
.ВключитьФайл("opm-metadata.xml")
8+
.ВключитьФайл("packagedef");

src/ТелеграмАПИ.os

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,75 @@
189189

190190
Возврат СоответствиеВнутреннее;
191191

192+
КонецФункции
193+
194+
// Формирует данные для создания пересылаемого сообщения
195+
// (Метод forwardMessage)
196+
//
197+
// Параметры:
198+
// ПолучательИД - Число - chat_id получателя
199+
// СообщениеИД - Число - id пересылаемого сообщения
200+
// ИзКакогоЧатаИД - Число - id чата из которого пересылается сообщение
201+
// БезОповещения - Булево - Если Истина, то сообщение будет переслано без оповещения получателя
202+
//
203+
// Возвращаемое значение:
204+
// Структура - Структура, готовая для передачи в ПереслатьСообщение() в классе ТелеграмБот
205+
//
206+
Функция НовоеПересылаемоеСообщение(ПолучательИД, СообщениеИД, ИзКакогоЧатаИД, БезОповещения = Ложь) Экспорт
207+
208+
Сообщение = Новый Соответствие;
209+
Сообщение.Вставить("chat_id", ПолучательИД);
210+
Сообщение.Вставить("message_id", СообщениеИД);
211+
Сообщение.Вставить("from_chat_id", ИзКакогоЧатаИД);
212+
Сообщение.Вставить("disable_notification", БезОповещения);
213+
214+
Возврат Сообщение;
215+
216+
КонецФункции
217+
218+
// Создает каркас для нового опроса (не добавляет варианты ответа!)
219+
// (Метод sendPoll)
220+
//
221+
// Параметры:
222+
// ПолучательИД - Число - chat_id получателя
223+
// ТекстВопроса - Строка - Текст вопроса, длинна 1-255 символов
224+
// Анонимныей - Булево - Если Ложь, то показывается какой вариант ответа выбрал участник опроса
225+
// ВозможенМножественныйОтвет - Булево - Если Истина, то участник может проголосовать за несколько вариантов
226+
// БезОповещения - Булево - Если Истина, то сообщение будет переслано без оповещения получателя
227+
//
228+
// Возвращаемое значение:
229+
// Структура - Структура, которую дополнительно нужно передать в функцию ДобавитьВариантОтветаНаОпрос()
230+
//
231+
Функция НовыйОпрос(ПолучательИД, ТекстВопроса, Анонимныей = Истина, ВозможенМножественныйОтвет = Ложь, БезОповещения = Ложь) Экспорт
232+
233+
Опрос = Новый Соответствие;
234+
Опрос.Вставить("chat_id", ПолучательИД);
235+
Опрос.Вставить("question", ТекстВопроса);
236+
Опрос.Вставить("is_anonymous", Анонимныей);
237+
Опрос.Вставить("allows_multiple_answers", ВозможенМножественныйОтвет);
238+
Опрос.Вставить("disable_notification", БезОповещения);
239+
МассивВариантовОтвета = Новый Массив();
240+
Опрос.Вставить("options", МассивВариантовОтвета);
241+
242+
Возврат Опрос;
243+
244+
КонецФункции
245+
246+
// Добавляет варианты ответа на опрос
247+
// Необходимо поочередно добавить от 2 до 10 вариантов
248+
// (Метод sendPoll)
249+
//
250+
// Параметры:
251+
// Опрос - Структура - То, что вернулось от НовыйОпрос()
252+
// ВариантОтвета - Строка - Текст варианта ответа, длинна 1-100 символов
253+
//
254+
// Возвращаемое значение:
255+
// Структура - Структура, готовая для передачи в ОтправитьОпрос() в классе ТелеграмБот
256+
//
257+
Функция ДобавитьВариантОтветаНаОпрос(Опрос, ВариантОтвета) Экспорт
258+
259+
Опрос["options"].Добавить(ВариантОтвета);
260+
261+
Возврат Опрос;
262+
192263
КонецФункции

src/ТелеграмБот.os

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,20 @@
102102

103103
КонецФункции
104104

105+
Функция ПереслатьСообщение(Сообщение) Экспорт
106+
107+
Команда = "forwardMessage";
108+
Возврат ОтправитьДанные(Сообщение, Команда);
109+
110+
КонецФункции
111+
112+
Функция ОтправитьОпрос(Сообщение) Экспорт
113+
114+
Команда = "sendPoll";
115+
Возврат ОтправитьДанные(Сообщение, Команда);
116+
117+
КонецФункции
118+
105119
#КонецОбласти
106120

107121
#Область СлужебныеПроцедурыИФункции

0 commit comments

Comments
 (0)