Coder Social home page Coder Social logo

egramtel / egram.tel Goto Github PK

View Code? Open in Web Editor NEW
362.0 25.0 70.0 20.53 MB

Crossplatform Telegram client

Home Page: https://egram.tel

License: MIT License

C# 91.46% Shell 4.94% Ruby 0.18% Python 2.15% AppleScript 0.62% NSIS 0.65%
dotnet dotnet-core avalonia telegram chat messenger csharp telegram-client telegram-desktop avaloniaui

egram.tel's People

Contributors

azure-pipelines[bot] avatar fornever avatar worldbeater avatar x2bool avatar

Stargazers

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

Watchers

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

egram.tel's Issues

System.MissingMethodException: Method not found: 'System.Span`1 on Windows

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Span1<!!1> System.MemoryExtensions.NonPortableCast(System.Span1<!!0>)'.
at SixLabors.ImageSharp.Memory.ArrayPoolMemoryManager.Buffer1.get_Span() at SixLabors.ImageSharp.Memory.ArrayPoolMemoryManager.Allocate[T](Int32 length, Boolean clear) at SixLabors.ImageSharp.Memory.MemoryManagerExtensions.Allocate2D[T](MemoryManager memoryManager, Int32 width, Int32 height, Boolean clear) at SixLabors.ImageSharp.ImageFrame1..ctor(MemoryManager memoryManager, Int32 width, Int32 height, ImageFrameMetaData metaData)
at SixLabors.ImageSharp.ImageFrameCollection1..ctor(Image1 parent, Int32 width, Int32 height)
at SixLabors.ImageSharp.Image1..ctor(Configuration configuration, Int32 width, Int32 height, ImageMetaData metadata) at SixLabors.ImageSharp.Image1..ctor(Int32 width, Int32 height)
at Egram.Components.Graphics.AvatarLoader.<>c__DisplayClass9_0.b__0() in C:\Users\IEUser\Downloads\egram.tel-master\egram.tel-master\Egram.Components\Graphics\AvatarLoader.cs:line 155
at System.Threading.Tasks.Task1.InnerInvoke() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at Egram.Components.Graphics.AvatarLoader.LoadForChatAsync(Chat chat, Size size, Boolean forceFallback) in C:\Users\IEUser\Downloads\egram.tel-master\egram.tel-master\Egram.Components\Graphics\AvatarLoader.cs:line 91 at Egram.Components.Navigation.SegmentInteractor.<FetchAll>b__6_0(IObserver1 observer) in C:\Users\IEUser\Downloads\egram.tel-master\egram.tel-master\Egram.Components.Navigation\SegmentInteractor.cs:line 165
at System.Reactive.AnonymousSafeObserver1.OnError(Exception error) at System.Reactive.ScheduledObserver1.Run(Object state, Action1 recurse) at System.Reactive.Concurrency.Scheduler.InvokeRec1[TState](IScheduler scheduler, Pair2 pair)
at Avalonia.Threading.AvaloniaScheduler.<>c__DisplayClass2_11.<Schedule>b__1() at Avalonia.Threading.JobRunner.RunJobs(Nullable1 priority)
at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
at Avalonia.Win32.Win32Platform.RunLoop(CancellationToken cancellationToken)
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Egram.Program.Run(IServiceProvider provider) in C:\Users\IEUser\Downloads\egram.tel-master\egram.tel-master\Egram\Program.cs:line 44
at Egram.Program.Main(String[] args) in C:\Users\IEUser\Downloads\egram.tel-master\egram.tel-master\Egram\Program.cs:line 18

I have not seen a single telegram client (other than my own) that has a message filtering function.

The scourge of the telegram is spam, unnecessary meaningless messages.
"My own" client, it is very loudly said, but by writing a page of code, he filtered all incoming messages and gave a signal only to the necessary ones. Your signal for every interesting user, and not for everyone in the chat! But I'm not a programmer, and this is just a hack. In your client, such a function would look great. (For example, as a setting for a chat, or a group to track certain users and assign them their own signals. And of course, ignore everyone else. Also, a filter by tags would be in the topic)
And it would be great to promote "a little-known client that no one trusts." People really need it!

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libtdjson.so':

Hi, guys!

I tried to run elgram.tel on CentOS (CentOS 7-1611 64bit) and encountered:

StackTrace

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libtdjson.so': The specified module or one of its dependencies could not be found.
 (Exception from HRESULT: 0x8007007E)
   at TD.Bindings.LinuxBindings.td_set_log_verbosity_level(Int32 level)
   at Egram.Registry.TDRegistry.<>c.<AddTDLib>b__0_0(IServiceProvider p) in /home/osboxes/egram.tel/Egram/Registry/TDRegistry.cs:line 15
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Egram.Program.Run(IServiceProvider provider) in /home/osboxes/egram.tel/Egram/Program.cs:line 41
   at Egram.Program.Main(String[] args) in /home/osboxes/egram.tel/Egram/Program.cs:line 18
Aborted (core dumped)

I saw file libtdjson.dll nevertheless elgram.tel requires libtdjson.so.

SetDpiAwareness error

Windows 7.
When compiling the project, an error occurs:

D:\egram.tel\application\Tel.Egram>dotnet run

Unhandled Exception: System.TypeInitializationException: The type initializer fo
r 'Avalonia.Win32.Win32Platform' threw an exception. ---> System.EntryPointNotFo
undException: Unable to find an entry point named 'SetProcessDpiAwarenessContext
' in DLL 'user32.dll'.
at Avalonia.Win32.Interop.UnmanagedMethods.SetProcessDpiAwarenessContext(IntP
tr dpiAWarenessContext)
at Avalonia.Win32.Win32Platform.SetDpiAwareness()
at Avalonia.Win32.Win32Platform..ctor()
at Avalonia.Win32.Win32Platform..cctor()
--- End of inner exception stack trace ---
at Avalonia.Win32.Win32Platform.Initialize(Boolean deferredRendering)
at Avalonia.Controls.AppBuilderBase1.Setup() in D:\a\1\s\src\Avalonia.Contro ls\AppBuilderBase.cs:line 273 at Avalonia.Controls.AppBuilderBase1.Start[TMainWindow](Func`1 dataContextPr
ovider) in D:\a\1\s\src\Avalonia.Controls\AppBuilderBase.cs:line 122
at Tel.Egram.Program.Run(ServiceCollection services, IServiceProvider provide
r) in D:\egram.tel\application\Tel.Egram\Program.cs:line 76
at Tel.Egram.Program.Main(String[] args) in D:\egram.tel\application\Tel.Egra
m\Program.cs:line 23

Cannot build

oripio@oripio-pc:/opt/egram.tel/src/Tel.Egram$ dotnet build
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Services/Tel.Egram.Services.csproj : warning NU1603: Tel.Egram.Services depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
Restore completed in 44,35 ms for /opt/egram.tel/src/Tel.Egram.Services/Tel.Egram.Services.csproj.
Restore completed in 44,34 ms for /opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj.
Restore completed in 44,34 ms for /opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj.
Restore completed in 44,34 ms for /opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj.
Restore completed in 30,28 ms for /opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Native (>= 0.7.1-build1258-beta) but Avalonia.Native 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Native 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
Restore completed in 6,58 ms for /opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Native (>= 0.7.1-build1258-beta) but Avalonia.Native 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Native 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Services/Tel.Egram.Services.csproj : warning NU1603: Tel.Egram.Services depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
Tel.Egram.Services -> /opt/egram.tel/src/Tel.Egram.Services/bin/Debug/netstandard2.0/Tel.Egram.Services.dll
Fody: Fody (version 3.2.9.0) Executing
Fody: Searched for 'PropertyChanged'. Found: /home/oripio/.nuget/packages/propertychanged.fody/2.5.13/build/../netstandardweaver/PropertyChanged.Fody.dll
Fody: Finished Fody 88ms.
Tel.Egram.Model -> /opt/egram.tel/src/Tel.Egram.Model/bin/Debug/netstandard2.0/Tel.Egram.Model.dll
Fody: Skipped Verifying assembly since it is disabled in configuration
Application/NotificationLogic.cs(53,68): error CS0246: The type or namespace name 'PixelRect' could not be found (are you missing a using directive or an assembly reference?) [/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj]
Application/NotificationLogic.cs(64,68): error CS0246: The type or namespace name 'PixelRect' could not be found (are you missing a using directive or an assembly reference?) [/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj]

Build FAILED.

/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram.Services/Tel.Egram.Services.csproj : warning NU1603: Tel.Egram.Services depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved. [/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj]
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Native (>= 0.7.1-build1258-beta) but Avalonia.Native 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Native 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.Native (>= 0.7.1-build1258-beta) but Avalonia.Native 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Native 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram/Tel.Egram.csproj : warning NU1603: Tel.Egram depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Model/Tel.Egram.Model.csproj : warning NU1603: Tel.Egram.Model depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Services/Tel.Egram.Services.csproj : warning NU1603: Tel.Egram.Services depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Application/Tel.Egram.Application.csproj : warning NU1603: Tel.Egram.Application depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia (>= 0.7.1-build1258-beta) but Avalonia 0.7.1-build1258-beta was not found. An approximate best match of Avalonia 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.Desktop (>= 0.7.1-build1258-beta) but Avalonia.Desktop 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.Desktop 0.7.1-build957-beta was resolved.
/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj : warning NU1603: Tel.Egram.Views depends on Avalonia.ReactiveUI (>= 0.7.1-build1258-beta) but Avalonia.ReactiveUI 0.7.1-build1258-beta was not found. An approximate best match of Avalonia.ReactiveUI 0.7.1-build957-beta was resolved.
Application/NotificationLogic.cs(53,68): error CS0246: The type or namespace name 'PixelRect' could not be found (are you missing a using directive or an assembly reference?) [/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj]
Application/NotificationLogic.cs(64,68): error CS0246: The type or namespace name 'PixelRect' could not be found (are you missing a using directive or an assembly reference?) [/opt/egram.tel/src/Tel.Egram.Views/Tel.Egram.Views.csproj]

26 Warning(s)
2 Error(s)

Time Elapsed 00:00:03.68
oripio@oripio-pc:/opt/egram.tel/src/Tel.Egram$

Implement media message types

  • messageAnimation
  • messageAudio
  • messageDocument
  • messagePhoto
  • messageExpiredPhoto
  • messageSticker
  • messageVideo
  • messageExpiredVideo
  • messageVideoNote
  • messageVoiceNote

Portable version for Windows?

I'm glad to finally see releases with EXE-files, but I'll be happy with portable (7Z or ZIP) one, because I don't wanna install egram.tel, I just wanna unpack it archive and use.

Implement special message types

  • messageLocation
  • messageVenue
  • messageContact
  • messageGame
  • messageGameScore
  • messageInvoice
  • messagePaymentSuccessful
  • messagePaymentSuccessfulBot
  • messagePassportDataSent
  • messagePassportDataReceived
  • messageWebsiteConnected
  • messageContactRegistered

Add proxy support

Many of our users cannot use egram.tel because it doesn't support proxy.

Let's add the following (each feature could be implemented in order):

  • add a settings dialog to set up the proxy

early opinion

First of all - great work! Telegram on c# - at last 👍
Sadly, it's nearly unusable on windows :( And the problem is avalonia. It's very slow on win :( Many rendering problems and bugs, I hope, will be fixed in the future. But whole concept? Even simple avalonia ui are working slow. It's working incredibly slow even compare to web apps :(((( Is it only windows problems, and on Nix/macOs all ok?
Do you have any thoughts on this?

Unhandled Exception: System.DllNotFoundException: Unable to load shared library 'tdjson' or one of its dependencies.

version - egram-0.5.297

 uname -a
Linux think 4.19.0-4-amd64 #1 SMP Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux

 cat /etc/*release
DISTRIB_ID=Debian
DISTRIB_RELEASE=19.01
DISTRIB_CODENAME=testing
DISTRIB_DESCRIPTION="Netrunner 19.01"
NAME="Netrunner"
VERSION_ID="19.01"
VERSION="19.01 (Blackbird)"
ID=netrunner
ID_LIKE=debian
HOME_URL="http://www.netrunner.com/"
SUPPORT_URL="http://forum.netrunner-os.com/"
BUG_REPORT_URL="https://github.com/netrunner/netrunner-feedback"
VERSION_CODENAME=testing
PRETTY_NAME="Netrunner 19.01 - Blackbird"
./Tel.Egram

Unhandled Exception: System.DllNotFoundException: Unable to load shared library 'tdjson' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libtdjson: cannot open shared object file: No such file or directory
   at TdLib.Bindings.LinuxBindings.td_set_log_file_path(IntPtr path)
   at TdLib.Client.Log.SetFilePath(String path)
   at Tel.Egram.Registry.<>c__DisplayClass1_0.<AddTdLib>b__0() in /home/vsts/work/1/s/src/Tel.Egram/Registry.cs:line 48
   at Splat.DependencyResolverMixins.<>c__DisplayClass8_0`1.<RegisterLazySingleton>b__0()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Splat.DependencyResolverMixins.GetService[T](IDependencyResolver This, String contract)
   at Tel.Egram.Registry.<>c__DisplayClass1_0.<AddTdLib>b__1() in /home/vsts/work/1/s/src/Tel.Egram/Registry.cs:line 55
   at Splat.DependencyResolverMixins.<>c__DisplayClass8_0`1.<RegisterLazySingleton>b__0()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Splat.DependencyResolverMixins.GetService[T](IDependencyResolver This, String contract)
   at Tel.Egram.Registry.<>c__DisplayClass1_0.<AddTdLib>b__3() in /home/vsts/work/1/s/src/Tel.Egram/Registry.cs:line 68
   at Splat.DependencyResolverMixins.<>c__DisplayClass8_0`1.<RegisterLazySingleton>b__0()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Splat.DependencyResolverMixins.GetService[T](IDependencyResolver This, String contract)
   at Tel.Egram.Registry.<>c__DisplayClass3_0.<AddServices>b__13() in /home/vsts/work/1/s/src/Tel.Egram/Registry.cs:line 213
   at Splat.DependencyResolverMixins.<>c__DisplayClass8_0`1.<RegisterLazySingleton>b__0()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Splat.DependencyResolverMixins.GetService[T](IDependencyResolver This, String contract)
   at Tel.Egram.Model.Application.AuthenticationLogic.BindAuthentication(MainWindowModel model) in /home/vsts/work/1/s/src/Tel.Egram.Model/Application/AuthenticationLogic.cs:line 20
   at Tel.Egram.Model.Application.MainWindowModel.<.ctor>b__28_0(CompositeDisposable disposables) in /home/vsts/work/1/s/src/Tel.Egram.Model/Application/MainWindowModel.cs:line 32
   at ReactiveUI.ViewForMixins.<>c__DisplayClass3_0.<WhenActivated>b__0() in D:\a\1\s\src\ReactiveUI\Activation\ViewForMixins.cs:line 74
   at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
   at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable)
   at System.Reactive.Disposables.CompositeDisposable..ctor(IEnumerable`1 disposables) in D:\a\1\s\Rx.NET\Source\src\System.Reactive\Disposables\CompositeDisposable.cs:line 67
   at ReactiveUI.ViewModelActivator.Activate() in D:\a\1\s\src\ReactiveUI\Activation\ViewModelActivator.cs:line 84
   at Tel.Egram.Program.Run(IDependencyResolver resolver) in /home/vsts/work/1/s/src/Tel.Egram/Program.cs:line 77
   at Tel.Egram.Program.Main(String[] args) in /home/vsts/work/1/s/src/Tel.Egram/Program.cs:line 17
Аварийный останов

Dark Theme

Its would be nice to have dark UI theme.

BadImageFormat exception while loading tdjson.dll

Hi!
I've tried to compile and run client under Windows 10 x64 and got BadImageFormat exception here:

services.AddSingleton(p =>
{
  Client.Log.SetVerbosityLevel(5); //<-- here
  Client.Log.SetFilePath(Path.Combine(p.GetService<Storage>().LogDirectory, "tdlib.log"));
  return new Client();
});

Stack trace:

   at TD.Bindings.WindowsBindings.td_set_log_verbosity_level(Int32 level)
   at Egram.Registry.TDRegistry.<>c.<AddTDLib>b__0_0(IServiceProvider p) in C:\Users\terekhin\sources\egram.tel\Egram\Registry\TDRegistry.cs:line 15
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass22_0.<RealizeService>b__0(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Egram.Program.Run(IServiceProvider provider) in C:\Users\terekhin\sources\egram.tel\Egram\Program.cs:line 41
   at Egram.Program.Main(String[] args) in C:\Users\terekhin\sources\egram.tel\Egram\Program.cs:line 18

I've tried both x64 and x86 builds but result is the same. I think, some dependency for tdjson.dll is missed and can not be loaded

Autoupdater

Autoupdater should be implemented as soon as possible to keep users on up to date version. Depends on #19

Login process doesn't send any confirmation code to other sessions

Hello there,

I've come across this client some time ago on Twitter and today again on Github, and it sure looks interesting and promising.

I've downloaded the Window setup binaries from the most recent release (v0.5.275), but I'm having issues logging in.

After inserting my phone number (10 digits phone number with italian prefix 39. It looks like this: 39XXXXXXXXXX) and clicking on the "send code" button, the button turns gray (I can't click it anymore) but I do not receive any login code on my other sessions.

I've tried the following number formats:

  • 39XXXXXXXXXX
  • +39XXXXXXXXXX

I really don't know how to debug that/report more informations useful to find out what is causing the problem.

I'm aware this app is in an early alpha stage and therefore is not meant to be fully functional yet, so feel free to ignore this issue

I'm using Windows 10 btw

Add CI infrastructure

  • Cross-platform unit tests
    • macOS
    • Linux
    • Windows
  • Release builder and uploader
    • Windows
    • I don't know if we want to prepare packages for other OS, so for now I'd leave that

Site is down

The webpage at https://egram.tel/ might be temporarily down or it may have moved permanently to a new web address.
ERR_NAME_RESOLUTION_FAILED

using phone numbers without the prefix crashes the application

Initially when I started using the application I used my phone number without the international prefix. So 415000000 -- so North American phone number.

Then second try I worked out what was going on and put the +1 prefix in front.

Other applications often list all the prefixes at the front with country flags. Long term that might be a good fix, short term catch the exception and show a error to the user.

Thanks :)

Application: Tel.Egram.exe
CoreCLR Version: 4.6.26919.2
Description: The process was terminated due to an unhandled exception.
Exception Info: ReactiveUI.UnhandledErrorException: An object implementing IHandleObservableErrors (often a ReactiveCommand or ObservableAsPropertyHelper) has errored, thereby breaking its observable pipeline. To prevent this, ensure the pipeline does not error, or Subscribe to the ThrownExceptions property of the object in question to handle the erroneous case. ---> TdLib.ErrorException: PHONE_NUMBER_INVALID
   --- End of inner exception stack trace ---
   at ReactiveUI.RxApp.<>c__DisplayClass0_0.<.cctor>b__2() in D:\a\1\s\src\ReactiveUI\RxApp.cs:line 64
   at System.Reactive.Concurrency.Scheduler.Invoke(IScheduler scheduler, Action action) in D:\a\1\s\Rx.NET\Source\src\System.Reactive\Concurrency\Scheduler.Simple.cs:line 83
   at Avalonia.Threading.AvaloniaScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
   at ReactiveUI.RxApp.<>c.<.cctor>b__0_1(Exception ex) in D:\a\1\s\src\ReactiveUI\RxApp.cs:line 68
   at System.Reactive.AnonymousSafeObserver`1.OnNext(T value) in D:\a\1\s\Rx.NET\Source\src\System.Reactive\AnonymousSafeObserver.cs:line 46
   at System.Reactive.ScheduledObserver`1.Run(Object state, Action`1 recurse) in D:\a\1\s\Rx.NET\Source\src\System.Reactive\Internal\ScheduledObserver.cs:line 254
   at System.Reactive.Concurrency.Scheduler.InvokeRec1[TState](IScheduler scheduler, Pair`2 pair) in D:\a\1\s\Rx.NET\Source\src\System.Reactive\Concurrency\Scheduler.Recursive.cs:line 89
   at Avalonia.Threading.AvaloniaScheduler.<>c__DisplayClass2_1`1.<Schedule>b__1()
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority)
   at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
   at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
   at Avalonia.Win32.Win32Platform.RunLoop(CancellationToken cancellationToken)
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
   at Avalonia.Application.Run(Window mainWindow)
   at Tel.Egram.Program.Run(IDependencyResolver resolver) in D:\a\1\s\src\Tel.Egram\Program.cs:line 72
   at Tel.Egram.Program.Main(String[] args) in D:\a\1\s\src\Tel.Egram\Program.cs:line 18

Implement info message types

  • messageCall
  • messageBasicGroupChatCreate
  • messageSupergroupChatCreate
  • messageChatChangeTitle
  • messageChatChangePhoto
  • messageChatDeletePhoto
  • messageChatAddMembers
  • messageChatJoinByLink
  • messageChatDeleteMember
  • messageChatUpgradeTo
  • messageChatUpgradeFrom
  • messagePinMessage
  • messageScreenshotTaken
  • messageChatSetTtl
  • messageCustomServiceAction

Prefer WhenActivated over IDisposable

ReactiveUI guidelines recommend using WhenActivated to control the lifecycle of a ViewModel.
Let's prefer it over bare metal IDisposables.

WhenActivated is a way to track disposables. Besides that, it can be used to defer the setup of a ViewModel until it's truly required. WhenActivated also gives us an ability to start or stop reacting to hot observables, like a background task that periodically pings a network endpoint or an observable updating users current location.

Docs: https://reactiveui.net/docs/handbook/when-activated/
AvaloniaUI/Avalonia#1951

No channels/messages are visible and can't send any

I think it's somehow connected to the #17 issue, but mine is rather different, I have a few in fact:

  • I can't see any channels in the first tab:
    image
  • I can see group channels, but can't send any messages and see them
    image
dotnet --version
2.1.402

Binaries for Win and MacOS

Hello.

Looks interesting implementation, thank you.
I'm not familiar with compiling, so can you please provide binaries for Windows and Mac?
Think I'm not only one.

Best regards.

Notification system

We need some kind of visual notification system. Could be system-provided or custom.

Unable to load DLL 'libtdjson.dylib' on Mac

But file 'libtdjson.dylib' is present in output directory !

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libtdjson.dylib': The specified module or one of its dependencies could not be found.
(Exception from HRESULT: 0x8007007E)
at TD.Bindings.MacosBindings.td_set_log_verbosity_level(Int32 level)
at Egram.Registry.TDRegistry.<>c.b__0_0(IServiceProvider p) in /Users/ilavrov/src/egram.tel/Egram/Registry/TDRegistry.cs:line 15
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass22_0.b__0(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
at Egram.Program.Run(IServiceProvider provider) in /Users/ilavrov/src/egram.tel/Egram/Program.cs:line 41
at Egram.Program.Main(String[] args) in /Users/ilavrov/src/egram.tel/Egram/Program.cs:line 18

Option to disable all stickers / images / GIFs

A so-called Safe for Work mode that disables everything except text, optionally we could also extend this to Display Profile photos and replace those with the default capital letter on a coloured background.

Would this be feasible?

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.