Giter VIP home page Giter VIP logo

telegramclient's People

Contributors

antonykamp avatar codezeilen avatar fniephaus avatar freddy200 avatar jacob271 avatar jb3rndt avatar jeilef avatar kohlros avatar lasklu avatar linqlover avatar lucasderreisende avatar permler avatar phkeese avatar rgwohlbold avatar rohansaw avatar rsommerfeld avatar schmidtjonas avatar sspangenberg avatar storyxx avatar timgarrels avatar tom-richter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

telegramclient's Issues

Wrap all TDJson functions

Is your feature request related to a problem? Please describe.
Tdjson has five methods to wrap. If they work we should be able to use them on all platforms

Describe the solution you'd like
Creating and freeing should work at least

Describe alternatives you've considered
None

Additional context
See td_json_client.h

VM Softlock wenn Telegram Fenster offen

Wenn das Main Fenster der Telegram UI offen bleibt und man das Squeak Image schließt geht dieses beim nächsten Start kaputt und kann nicht mehr gerettet werden.

Support sending messages

Is your feature request related to a problem? Please describe.
Any messaging client needs to be able to send messages

Describe the solution you'd like
In the chat detail view the user has the ability to send messages (for now only text)

Describe alternatives you've considered
Composing new messages should also be supported, but probably an existing chat is better.

Additional context
See WhatsApp/Telegram for a design which to aim for
Estimate:
4 Pizzen

Add Mac Client for working Mac-Setup

Is your feature request related to a problem? Please describe.
Add functioning MacClient on correctly setup Mac

Describe the solution you'd like
Make TeleClient work on Mac like on Linux and Windows

Describe alternatives you've considered

Additional context

Connect UI with Core

Is your feature request related to a problem? Please describe.
UI input and Buttons should perform the login Methods from the Core-Package.

Describe the solution you'd like
Add calls to Core-Functions from UI to perform login with User-Input.

Describe alternatives you've considered
No alternatives needed

Tag all old branches

Describe the bug
Old branches are visible, they should only exist as tags

Expected behavior
Only branches from the 2020 project exist

Additional context
Tag old branches as to not remove them for ever

Connecting Auth UI with Core

Is your feature request related to a problem? Please describe.
They both are standalone modules rn, and need to be connected

Describe the solution you'd like
new app clsss to create UI

Setup Contribution Guide

Contribution models will play a role in evaluation. Correct branch management is favoured if usage is explained correctly. Setup contributing.md for doc outlining our practices.

Refactor TeleClient and OsClients

Extract OsClient methods to base class which is injected into teleclient at construction time. move teleclient initialize method to abstractfactory method returning TeleClient, or in other implementation can return mock client. The concrete TeleClient Factory should take OS platformName as parameter, allowing us to test everything but FFI

Allow pinning of messages

Is your feature request related to a problem? Please describe.
Certain message morphs should be detachable and pinnable in foreground to view messages during other work

Describe the solution you'd like
When a push message comes in the user is able to lock that popup window, which will display the entire text and prevent it from disappearing

Describe alternatives you've considered
Hovering over the message keeps it present

Additional context
Clarification is needed, where is the pinning supposed to work? Push or all messages
Estimate:
2 Pizzen

Create new chats

Is your feature request related to a problem? Please describe.
Create new chats should be supported.
Describe the solution you'd like
See telegram web interaction for writing new people
Describe alternatives you've considered
Simply send a message in a different view and request an update through tdlib, ugly synchronization though

Additional context

Refactoring AuthCore-UI connection

Is your feature request related to a problem? Please describe.
Currently Auth UI has reference to App, which should not be needed.

Describe the solution you'd like
Raise an event from authUI when button is pressed and handle it from App. Maybe even better - have an UIHandler in TelegramCore ?

Investigate which linter errors to turn on.

Investigate which linter erros to turn on. Also categorise them according to linter category.
Suggested:
Namespace Simulation (classes all should have a prefix)
precedenceRule (WTF squeak, operator precedence is not implemented for addition and multiplication lol 2+4*4 = 24 in squeak)
smallLintUndeclaredReference (when removing a instancevar a method references this error is thrown. aka a compile time error in all compiled programming langs)
smallLintSendsUnknownMessageToGlobal Apparently one can send messages to globals. if they are not implemented, this assures that the error is always thrown so this will detect bugs.
smallLintUsesTrue (apparently one should use the classes. I wonder whether this leads to less allocations. also filed as bug, so INVESTIGATE)
smallLintVariableNotDefined (undeclaredreference for class)
smallLintSentNotImplemented (messages that are sent which can be statically resolved to a type which does not implement said message)
smallLintMethodModifierOverride (requires that methods with the modifier override actually override something)
smallLintMethodModifierFinal (messages with the modifier final should not be overridden)
smallLintClassVariableCapitalization (class vars should start with an uppercase letter)
smallLintCollectSelectNotUsed (collect or select call results should always be used.)
instanceVariableCapitalizationRule (instance vars should start with a lowercase letter)
smallLintLiteralArrayCharacters literal char arrays should be a string
smallLintTemporaryVariableCapitalization (temp vars should be lowercase)
smallLintSizeCheck (size checks before iteration are irrelevant)
smallLintConsistencyCheck (isEmpty, IsNil, First should be preferred to size = 0, = nil , at: 1)
smallLintContains (anySatisfied should be preferred to detect: ifNone:)
ifTrueReturnsRule (replace ifTrue/ifFalse branches with shorter bool equivalent where possible)
smallLintStringConcatenation (strings should be streamed instead of concated as runtime is better)
smallLintUnoptimizedAndOr (should use and: and: instead of and[x and: []] )
smallLintCodeCruftLeftInMethods (debugging code is left in methods and should be removed)
smallLintMissingTranslationsInMenus (IMPORTANT: Investigate whether we can sell localization as a feature, then this will enforce translation in menu items)
smallLintSuperSendsNew (smalltalk auto initialises objects, making new initialize: wrong)
CONITINUE EVALUATION FROM POSSIBLE BUGS DOWNWARD

Create Installation Instructions & Start Instruction

Is your feature request related to a problem? Please describe.
Der Tutor will eine Installationsanleitung & Startanleitung für den Telegram client.

Describe the solution you'd like
Simpler call um das Programm zu starten, idealerweise ein artefakt

Describe alternatives you've considered

Additional context

Add binaries to project

Is your feature request related to a problem? Please describe.
While build server is being set up we commit the binaries and share them via git.

Delete old TeleClient Folder

Is your feature request related to a problem? Please describe.
Folder is Legacy and shouldnt clutter the repo

Describe the solution you'd like
Delete the folder

Support Telegram Contact Management

Is your feature request related to a problem? Please describe.
Telegram offers a contact list which is synced with their server. allow for the app to sync the user list with the server as to see existing contacts on existing telegram clients

Describe the solution you'd like
Functionality to add/remove/edit users already in the contact list

Describe alternatives you've considered
Roll your own contacts library and do 1:1 mapping, but there is no need in this case.

Additional context
Split this up into getting contacts, adding, removing and editing as this is a huge story
Estimate:
2 Pizzen

Display a list of all available open chats

Is your feature request related to a problem? Please describe.
Already present chats should be displayed in a listview to navigate to the masterdetail page of a singular chat.

Describe the solution you'd like
All currently active chats are displayed in a list

Describe alternatives you've considered
None really, messaging apps all have this list

Additional context
Listview items have to be bound to an id as to identify the correct messages to load
Estimate:
3 Pizzen

TODOs für unsere Nachfolger

Hallo liebe Nachfolger,

Glückwunsch zu diesem großartigen Projekt.

Was wir bereits implementiert haben:

User Story 1: First Login

As an end-user, I want to verify my identity at first login, to access my Telegram account.

User Story 2: Regular Login

As an end-user, I want to login to my Telegram account, to send and receive messages.

User Story 3: Receive Messages

As an end-user, i want to receive messages, to stay up to date.

User Story 4: Send Messages

As an end-user, I want to send messages, to contact my colleagues.

User Story 5: UI-Layout

As an end-user, I want to interact within an UI, to have an easy and accessible interaction.

User Story 6: Show selectable chats in UI

As an end-user I want to view and select Chats , to see whom I 'm interacting with.

User Story 7: Select chat in UI

As an end-user, I want to browse my contacts and select a chat, to continue a conversation.

User Story 8: Create Chat in UI

As an end-user, I want to create a new chat by searching usernames, to begin a conversation.

User Story 9: Create group chats in UI

As an end-user, I want to create group chats in order to organize group events.

User Story 10: Standard desktop UI

As an end-user, I want to use the standard desktop UI in Squeak, to ease switching between Telegram clients.

User Story 11: Multi Platform

As an end-user, I want to use Telegram on the system of my choice.

Was wir vorschlagen würden zu implementieren:

User Story 12: Send media

As an end-user I want to share and send media (photos, videos, audios).

User Story 13: Send sticker-packages

As an end-user I want to download and post sticker-packages.

User Story 14: Send code

As an end-user and developer I want to send code via Telegram to my colleagues, as a makeshift replacement to a versioning system.

User Story 15: Manage sticker packages

As an end-user, I want to have sticker-package-management in order to react on messages more visually.

User Story 16: Send morphs

As an end-user and developer, I want to send morphs via Telegram to my colleagues, to let them try out my work.

User Story 17: Write own Telegram bots

As an end-user and developer, i want to write my own Telegram bots in Squeak to automate communication or send automates status updates.

User Story 18: Change personal Information

As an end-user, i want to change my personal account information, e.g. profile picture or biography, to customize my profile.

User Story 19: Use Markup

As an end-user I wan to be able to use basic Markup functions in order to communicate clearer.

User Story 20: Set and change Profile Picture

As an end-user I want to set and change my profile picture in order to make conversations more personally.

User Story 21: Settings

As an end-user, I want to customize my client in order to have exactly the ecperience I desire.

Falls Interesse besteht stellen wir euch auch gern unsere Präsentation zur Verfügung.

Archive old Branches

Is your feature request related to a problem? Please describe.
The old Team left many open Branches, which clutter our Repository now.

Describe the solution you'd like
Archive Old Branches.

Describe alternatives you've considered

Installationsanleitung

Installationsanleitung - Squeak Telegram Client

TDLib Library neu kompilieren/ laden

Anleitung unter: https://github.com/tdlib/td

TDLib Library hinzufügen

Windows (64 Bit):

tdjson.dll in den Ordner …\Contents\Win64\ legen.

Linux (Ubuntu):

libtdjson.so in den Ordner …\Contents\Linux\lib\squeak\<versionsnummer>\ legen.

Mac:

libtdjson.dylib in den selben Ordner wie das Squeak Image legen.

Debugger ausführen

Vor dem ersten Ausführen im Workspace Debug open. ausführen

Telegram Client starten

Im Workspace Telegram debugNew. ausführen.

Display push notifications

Is your feature request related to a problem? Please describe.
Received push notifications are ignored up until now.
Describe the solution you'd like
Received push notifications should be displayed as some sort of popup

Describe alternatives you've considered
None
Additional context
See any mobile phone push notification window
Estimate:
2 Pizzen

Support setting your own profile picture for contacts

Is your feature request related to a problem? Please describe.
Telegram clients support setting your contact picture. We also should support that via file selection.

Describe the solution you'd like
The user clicks on a button which opens a filechooser for image files. once the file has been verified to be a compatible image, we send it to the telegram server and sync our client.

Describe alternatives you've considered
Choosing via a camera etc could probably be suported, the amount of platform specific native code far outweighs the practicality

Additional context
We have not yet discussed this with our PO. Verify that this is wanted and needed

Implement Zen Mode

Is your feature request related to a problem? Please describe.
When the Zen Mode is active, no push notifications are to be shown. Instead, an Icon will be shown on screen with an Indicator about missed messages
Describe the solution you'd like
A Telegram Icon with an Indicator and either corner dispalying the amount of missed messages

Describe alternatives you've considered
Perhaps it is more "Zen" to just show that you have missed messages?

Additional context
Will require checks at different spots to support.

Merge Rohans and Freddys Auth versions

Is your feature request related to a problem? Please describe.
We both worked on auth paralell

Describe the solution you'd like
Merge both features together

Authenticate with Telegram

Is your feature request related to a problem? Please describe.
Authentication is the basis for all interaction with the telegram client. Understand the authentication mechanism present (are there refresh tokens, who issues API Keys, etc.)
Describe the solution you'd like
As we should have presentable things at the end of every sprint, and this probably will be the first thing to be requested, we should have a workable UI to simply login and logout, or directly logout if we have a cached authentication tokens.

Describe alternatives you've considered
No UI and simply authenticate via CLI. Worse, as they will expect a GUI at some point.
Additional context
See TDLIB authentication here in the docs.
Estimate:
3 Pizzen

Create Linter Tests

Is your feature request related to a problem? Please describe.
Some linter errors should result in failed test, such as uncategorized methods

Describe the solution you'd like
When checking in the tests fail for certain linter errors. The list ist tbd

Describe alternatives you've considered
None, talk with Patrick

Additional context
Sample test has been added, should be adapted for all rules

Log out of Client

Is your feature request related to a problem? Please describe.
If user wants to use an other phone number on the same Desktop, he should be able to switch accounts.

Describe the solution you'd like
Allowing User to log out and with that clearing the local data from TDLIB

Support Push notifications with Telegram

Telegram supports sending push notifications to all device platforms which squeak supports. Add Push notifications for all of them

Describe the solution you'd like
APNS,GCM,WPUSH messages are all handled and display some sort of popup window

Additional context
API DOCS
Estimate:
5 Pizzen

Track Squeak FFI integration

Some people can not access FFI via Mac, probably an FFI error.
Windows related errors appear to be related to msvcp 140

Support contact images

Is your feature request related to a problem? Please describe.
Once contact management is implemented, persist the user profile picture
Describe the solution you'd like
When viewing the contacts, the existing cached images are preloaded, and a picture update request ist queued for all contacts

Describe alternatives you've considered

Additional context
Do not support editing your own picture, just seeing others.
Estimate:
1.5 Pizzen

Add persistance for commonly requested types.

Is your feature request related to a problem? Please describe.
Many operations would speed up by an order of magnitude and also allow offline usage if they were persisted on the drive.
Describe the solution you'd like
Ideally we can work with the tdlib cache, as seen here TDLib supports caching of chats and messages. Some things such as user images will probably need to be stored somewhere.
Describe alternatives you've considered
Investigate Persistence, probably even Databases in squeak.

Additional context
Investigate the Telegram Database model
Estimate:
3 Pizzen

Build UI for loggedIn User

Is your feature request related to a problem? Please describe.
The User need Visual Feedback once he is logged in.

Describe the solution you'd like
Display a UI, where chats etc. will later be, which now only, displays a Welcome Message. Stay consistent with TelegramStyle.

Describe alternatives you've considered
Show welcome Message in Authscreen

Support other message types such as Picture/File

Is your feature request related to a problem? Please describe.
The user should be able to send messages with pictures or other files to share with his chat partner

Describe the solution you'd like
Attaching a file sends a message with attachment

Describe alternatives you've considered
None, we are locked by TDLIB
Additional context
Pictures and arbitrary files should be supported and visible as distinct message types

Estimate:
5 Pizzen

Structured Text in messages

Is your feature request related to a problem? Please describe.
Text messages shall be able to contain structured text, such as code.
Describe the solution you'd like
Some Github-esque formatting for code when inside a code block

Describe alternatives you've considered
Actually structured messages which only work with our client as the content is actually xml/json. Worse that inline as to also support other messangers without abysmal text design

Additional context
Check out Github/Stackoverflow code structuring
Estimate:
6 Pizzen

Build UI for Auth

Is your feature request related to a problem? Please describe.
User wants UI for easy access to logging in

Describe the solution you'd like
Build a minimal UI

Describe alternatives you've considered
Auth via CLI

Additional context

Allow answering messages through popup window

Is your feature request related to a problem? Please describe.
When the popup message window appears, users should be able to quickly respond to the sender of the message without going through the normal app message sending process.

Describe the solution you'd like
A reply button allows composing the response in whatever current window is currently active by displaying a hidable popup
Describe alternatives you've considered
Simply use the OS specific mechanism

Additional context
See WhatsApp/Telegram mobile phone clients
Estimate:
3 Pizzen

Setup CI Pipeline

Is your feature request related to a problem? Please describe.
Setup CI, see here

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Client has to be Freed

Describe the bug
If client is left open in the Background and only the Morph is deleted, we will encounter an error that DB is already encripted, when trying to reopen a client.
To Reproduce
Steps to reproduce the behavior:
Create new TeleClient.
Create another Teleclient -> Will receive error, that its already encripted

Expected behavior
If a Teleclient is already open, then we should use that Client, and not create a new one, or otherwise delete the old one.

Fulltext search in messages

Is your feature request related to a problem? Please describe.
Other telegram clients support fulltext searching of messages via simple exact matching.

Describe the solution you'd like
We would probably like to order results based on newest first. Sample SQL would be something like SELECT Id,Text FROM Messages m where m.Text CONTAINS $Param ORDER BY m.CreationTime ASC. Alternatively, investigate whether the telegram API supports searching
Describe alternatives you've considered
Maintaining a separate index would allow you to improve the quality of the search as well as allow for dialectic searching via a document-term matrix. This project alone would be worth SWT cred though, so not really feasable

Additional context
Estimate:
2 Pizzen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.