Compare commits

..

No commits in common. "59b3f59a5ab088a86670bfd9d12cac32f8722dba" and "cec330df0d6caf3c11238b3f4252a6cc49fe55d2" have entirely different histories.

4 changed files with 12 additions and 52 deletions

View File

@ -8,15 +8,7 @@ namespace TelegramMessageCounter
private static readonly Client Client = new(23711185, "9e23f24bbb2f3dc3e561c0a5c9d3e622"); //Please, create your client, but don't shy use it if you are lazy :) private static readonly Client Client = new(23711185, "9e23f24bbb2f3dc3e561c0a5c9d3e622"); //Please, create your client, but don't shy use it if you are lazy :)
static void Main(string[] args) static void Main(string[] args)
{ {
if (args.Length > 0 && args[0] == "--help") string? login = args.Length > 1 ? args[0] : null;
{
Console.WriteLine("Usage: TelegramMessageCounter <login (phone number)> <path>" +
"\n login - Phone number of telegram. If argument is empty, waiting for Keyboard interrupt" +
"\n path - Path to save results file. If argument is empty, path will be \"results.txt\"\n");
}
string? login = args.Length > 0 ? args[0] : null;
string? path = args.Length > 1 ? args[1] : null;
Splash.MakeSplash(); Splash.MakeSplash();
loginStage: loginStage:
@ -35,7 +27,7 @@ namespace TelegramMessageCounter
Helpers.Log = (_, _) => { }; //force logger to shut up Helpers.Log = (_, _) => { }; //force logger to shut up
Console.ForegroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Waiting to login..."); Console.Write("Waiting to login...");
DoLogin(login).Wait(); DoLogin(login).Wait();
@ -56,10 +48,7 @@ namespace TelegramMessageCounter
Console.WriteLine($"Multiplier {Client.User}/{res.TargetUsername} is: {res.Multiplier} of {res.MyMsg}/{res.TargetMsg} and total {res.FullMsg} messages"); Console.WriteLine($"Multiplier {Client.User}/{res.TargetUsername} is: {res.Multiplier} of {res.MyMsg}/{res.TargetMsg} and total {res.FullMsg} messages");
infos.Add(res); infos.Add(res);
} }
if(path is not null) SaveAndAddStats(infos);
SaveAndAddStats(infos, path);
else
SaveAndAddStats(infos);
} }
static CounterInfo? GetInfo(long targetId) static CounterInfo? GetInfo(long targetId)
@ -93,7 +82,7 @@ namespace TelegramMessageCounter
if (offset > res.Count) offset = res.Count; if (offset > res.Count) offset = res.Count;
Console.ForegroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write($"\rReading messages, please wait, it may take a while... {offset} => {res.Count}"); Console.Write($"\rReading messages, please wait... {offset} => {res.Count}");
try try
{ {
messagesList.Add(Client.Messages_GetHistory((InputPeer)peer, 0, default, offset).Result); messagesList.Add(Client.Messages_GetHistory((InputPeer)peer, 0, default, offset).Result);
@ -128,10 +117,10 @@ namespace TelegramMessageCounter
targetCounter, targetCounter,
myCounter, myCounter,
res.Count, res.Count,
string.IsNullOrEmpty(peer?.username ?? "") ? peer?.id.ToString() ?? "unknown" : $"@{peer?.username}"); string.IsNullOrEmpty(peer?.username ?? "") ? $"@{peer?.id.ToString()}" : peer?.username ?? "unknown");
} }
static void SaveAndAddStats(List<CounterInfo> infos, string path = "results.txt") static void SaveAndAddStats(List<CounterInfo> infos)
{ {
Console.ForegroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write("Saving results..."); Console.Write("Saving results...");
@ -152,16 +141,16 @@ namespace TelegramMessageCounter
Console.WriteLine("[DONE]"); Console.WriteLine("[DONE]");
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine($"Middle result is: {multiplier}"); Console.WriteLine($"Middle result is: {multiplier}");
File.WriteAllText(path, fileData); File.WriteAllText("results.txt", fileData);
Console.WriteLine("Goodbye!"); Console.WriteLine("Goodbye!!!");
} }
static async Task DoLogin(string loginInfo) static async Task DoLogin(string loginInfo)
{ {
while (Client.User == null) while (Client.User == null)
switch (await Client.Login(loginInfo)) // returns which config is needed to continue login switch (await Client.Login(loginInfo)) // returns which config is needed to continue login
{ {
case "verification_code": Console.Write("Code: "); loginInfo = Console.ReadLine()!; break; case "verification_code": Console.WriteLine("Code: "); loginInfo = Console.ReadLine()!; break;
case "password": Console.Write("Password: "); loginInfo = Console.ReadLine()!; break; // if user has enabled 2FA case "password": Console.WriteLine("Password: "); loginInfo = Console.ReadLine()!; break; // if user has enabled 2FA
default: loginInfo = null!; break; default: loginInfo = null!; break;
} }
} }

View File

@ -1,32 +1,3 @@
# TelegramMessageCounter # TelegramMessageCounter
Program for calculate statistics of messages sended in telegram with your friends. Program for calculate statistics of messages sended in telegram with your friends.
![readme-screenshot.png](docs/readme-screenshot.png)
## Usage
.\TelegramMessageCounter.exe <login (phone number)> <path>
where
- `login` - Phone number of telegram. If argument is empty, waiting for Keyboard interrupt
- `path` - Path to save results file. If argument is empty, path will be `results.txt`
To invoke this text use
.\TelegramMessageCounter.exe --help
### Example
.\TelegramMessageCounter.exe +14928587194
.\TelegramMessageCounter.exe +14928587194 D:\Results\results.txt
.\TelegramMessageCounter.exe
### Results
For every who have dialog with you program generate record in file, for example:
username: lisoveliy
multiplier: 0,33
total messages: 100
your messages: 25
target messages: 75
----

View File

@ -2,14 +2,14 @@
{ {
internal class Splash internal class Splash
{ {
public static void MakeSplash() static public void MakeSplash()
{ {
Console.WriteLine(" _____ ___ "); Console.WriteLine(" _____ ___ ");
Console.WriteLine("/__ \\/\\/\\ / __\\"); Console.WriteLine("/__ \\/\\/\\ / __\\");
Console.WriteLine(" / /\\/ \\ / / "); Console.WriteLine(" / /\\/ \\ / / ");
Console.WriteLine(" / / / /\\/\\ \\/ /___ "); Console.WriteLine(" / / / /\\/\\ \\/ /___ ");
Console.WriteLine(" \\/ \\/ \\/\\____/ v1.3 ꞵeta"); Console.WriteLine(" \\/ \\/ \\/\\____/ v1.2 ꞵeta");
Console.WriteLine("Telegram Message Counter by Lisoveliy"); Console.WriteLine("Telegram Message Counter by Lisoveliy");
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB