Compare commits
No commits in common. "59b3f59a5ab088a86670bfd9d12cac32f8722dba" and "cec330df0d6caf3c11238b3f4252a6cc49fe55d2" have entirely different histories.
59b3f59a5a
...
cec330df0d
29
Program.cs
29
Program.cs
@ -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,9 +48,6 @@ 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, path);
|
|
||||||
else
|
|
||||||
SaveAndAddStats(infos);
|
SaveAndAddStats(infos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
29
README.md
29
README.md
@ -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.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## 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
|
|
||||||
----
|
|
@ -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 |
Loading…
x
Reference in New Issue
Block a user