goodboytatbot's People
goodboytatbot's Issues
Сделать Mock API Yandex Translate
Implement user-agent rotation for Google API client
An article about user-agent rotation implementation.
An article about implementation without user-agent rotation but with more difficult implementation algorithm.
Enhance translation of Google's API
As I know know Google returns several translations. Give to the user ability to choose better translation by himself/herself.
For example:
"I found several translation, choose a better one:
- Hello, World! (some-link to choose this translation)
- Hi, World! (some-link to choose this translation)"
Implement REST error handler for IamTokenKeeper
By analogy with translate clients.
Сделать Mock API телеграма
Сделать mock API телеграма, чтобы можно было тестировать локально без привязки к телеграму. А также, гонять интеграционные тесты.
Private Chats: translate messages only when markers are used
There are two markers (hashtags) that bot should recognize:
- #перевод
- #тәрҗемә
Cases:
- when message contains #перевод hashtag then message should be translated from Tatar to Russian
- when message contains #тәрҗемә hashtag then message should be translated from Russian to Tatar
- when #перевод hashtag links to some message as a reply, that replied message should be translated from Tatar to Russian
- when #тәрҗемә hashtag links to some message as a reply, that replied message should be translated from Russian to Tatar
Внедрить checkstyle
Внедрить в проект статический анализатор кода: checkstyle.
Написать wiki-инструкции для вливания в проект новых разработчиков
Write readme and using instructions
Instructions could be wrote in github's wiki or telegram's articles (https://telegram.org/blog/instant-view).
Plug-In JaCoCo (code coverage)
Google Client falls with exception
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "": null; nested exception is org.apache.http.client.ClientProtocolException
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:791) ~[spring-web-5.3.24.jar:5.3.24]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717) ~[spring-web-5.3.24.jar:5.3.24]
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:474) ~[spring-web-5.3.24.jar:5.3.24]
at tatbash.translation.google.GoogleTranslateClient.requestTranslation(GoogleTranslateClient.java:70) ~[classes/:na]
at tatbash.translation.google.GoogleTranslateClient.translate(GoogleTranslateClient.java:31) ~[classes/:na]
at tatbash.translation.TranslationService.translate(TranslationService.java:35) ~[classes/:na]
at tatbash.telegram.TranslationDelegator.translate(TranslationDelegator.java:20) ~[classes/:na]
at tatbash.telegram.TelegramBotExecutor.onUpdateReceived(TelegramBotExecutor.java:33) ~[classes/:na]
Find a way to see logs of running app
Currently I don't know a way how to see logs of the app.
Group Chats: inline-mode translation ability
Cases:
- when the bot isn't a member of any group chat there should be an ability translate any message via inline-mode
Внедрить GitHub Actions для сборки проекта
Implement translation via Google API
Link translation reply of bot to the origin message
Extract MockRestServiceServer initialization into junit extension
There is an initialization of MockRestServiceServer in integration tests:
@BeforeEach
void setUp() {
this.mockRestServiceServer.reset();
}
@AfterEach
void tearDown() {
this.mockRestServiceServer.verify();
}
As an improvement, would be better to extract it into junit's extension.
Rename project to GoodBoyTatBot
Current "tatbash-bot" just working name. It should be renamed, say, to "GoodBoyTatBot". Under discussion...
Group Chats: translate messages only when markers are used
This feature should work similar to #16.
There are two markers (hashtags) that bot should recognize:
- #перевод
- #тәрҗемә
Cases:
- when message contains #перевод hashtag then message should be translated from Tatar to Russian
- when message contains #тәрҗемә hashtag then message should be translated from Russian to Tatar
- when #перевод hashtag links to some message as a reply, that replied message should be translated from Tatar to Russian
- when #тәрҗемә hashtag links to some message as a reply, that replied message should be translated from Russian to Tatar
Bot mustn't translate messages automatically in group chats (see #17).
Write bot's description in Tatar language
Also link to telegraph article or wiki article should be added.
Создать первичную структуру проекта
На базе фреймворка Spring Boot.
Сборщик Maven.
Handle exceptions of Yandex API
Implement integration test for smoke test of the whole app running
Private Chats: automatically detect language of message
Cases:
- when message doesn't contain any hashtag-marker then try detect it automatically
Remove circular dependency between TelegramBotExecutor and TranslationDelegator
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the application context form a cycle:
┌─────┐
| telegramBotExecutor defined in file [/mydata/projects/tatbash-bot/target/classes/tatbash/telegram/TelegramBotExecutor.class]
↑ ↓
| translationDelegator defined in file [/mydata/projects/tatbash-bot/target/classes/tatbash/telegram/TranslationDelegator.class]
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
Plug-In PITest (mutation tests)
Send separate sentences to Google API, without quoting several sentences
Bump java version
Внедрить spotbugs
Внедрить в проект статический анализатор кода: spotbugs.
Configure CI/CD for releases
Consider to implement by github actions.
Интегрироваться с REST API translate.yandex
- Необходимо изучить документацию по интеграции с REST API
- Реализовать простейший функционал по переводу текста татарский-русский, русский-татарский
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.