Ejemplo n.º 1
0
        internal static async Task UpdateLinksFromJsonAsync(TelegramBotAbstract sender, MessageEventArgs e)
        {
            try
            {
                if (e.Message.Chat.Type != ChatType.Private)
                {
                    return;
                }

                if (!Owners.CheckIfOwner(e.Message.From.Id))
                {
                    return;
                }

                if (e.Message.ReplyToMessage == null)
                {
                    return;
                }

                if (e.Message.ReplyToMessage.Document == null)
                {
                    return;
                }

                var d = e.Message.ReplyToMessage.Document;
                var f = await sender.DownloadFileAsync(d);

                Console.WriteLine(f.Item2.Length);
                f.Item2.Seek(0, SeekOrigin.Begin);
                var reader = new StreamReader(f.Item2);
                var text   = reader.ReadToEnd();

                var obj = JsonConvert.DeserializeObject(text);
                Console.WriteLine(obj.GetType());
                var jArray = (JArray)obj;

                var L = new ListaGruppiTG_Update();

                var gruppoTGs = new List <GruppoTG>();
                foreach (var x in jArray)
                {
                    try
                    {
                        var jObject  = (JObject)x;
                        var gruppoTG = new GruppoTG(jObject["id_link"], jObject["class"], jObject["permanentId"],
                                                    jObject["LastUpdateInviteLinkTime"]);
                        gruppoTGs.Add(gruppoTG);
                    }
                    catch
                    {
                        ;
                    }
                }

                gruppoTGs = RimuoviDuplicati(gruppoTGs);

                foreach (var gruppoTG in gruppoTGs)
                {
                    try
                    {
                        await Task.Delay(100);
                    }
                    catch
                    {
                        ;
                    }

                    try
                    {
                        await UpdateLinksFromJson2Async(gruppoTG, sender, e, L);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                        var ex4m = "4" + "\n\n" + ex.Message;
                        await sender.SendTextMessageAsync(e.Message.From.Id,
                                                          new Language(
                                                              new Dictionary <string, string>
                        {
                            {
                                "it",
                                ex4m
                            }
                        }),
                                                          ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username);

                        return;
                    }
                }

                var s2 = "Link generati\n\n" +
                         "Totale: " + L.Count() + "\n" +
                         "Nuovi: " + L.GetCount_Filtered(SuccessoGenerazioneLink.NUOVO_LINK) + "\n" +
                         "Riciclati: " + L.GetCount_Filtered(SuccessoGenerazioneLink.RICICLATO) + "\n" +
                         "Errori: " + L.GetCount_Filtered(SuccessoGenerazioneLink.ERRORE) + "\n";

                await sender.SendTextMessageAsync(e.Message.From.Id,
                                                  new Language(
                                                      new Dictionary <string, string>
                {
                    {
                        "it",
                        s2
                    }
                }),
                                                  ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username);

                var st = L.GetStringList();

                var dict = new Dictionary <string, string>
                {
                    { "it", "Gruppi con link rigenerati" }
                };
                var stream = GenerateStreamFromString(st);
                var tf     = new TelegramFile(stream, "groups.txt", "Gruuppi con link rigenerati", "text/plain");
                await sender.SendFileAsync(tf, new Tuple <TLAbsInputPeer, long>(null, e.Message.From.Id),
                                           new Language(dict),
                                           TextAsCaption.AFTER_FILE, e.Message.From.Username, e.Message.From.LanguageCode, null, false);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Ejemplo n.º 2
0
        private static async Task UpdateLinksFromJson2Async(GruppoTG gruppoTG, TelegramBotAbstract sender,
                                                            MessageEventArgs e, ListaGruppiTG_Update L)
        {
            var result = new GruppoTG_Update(null, SuccessoGenerazioneLink.ERRORE);

            var group_id = gruppoTG.permanentId;
            var sql1     = "empty";

            if (!string.IsNullOrEmpty(gruppoTG.idLink))
            {
                sql1 = "SELECT id FROM Groups " +
                       "WHERE Groups.link LIKE '%" + gruppoTG.idLink + "%'";

                if (gruppoTG.idLink.Length < 3)
                {
                    gruppoTG.idLink = "";
                }
            }

            if (group_id == null)
            {
                try
                {
                    if (!string.IsNullOrEmpty(gruppoTG.idLink))
                    {
                        var r1 = SqLite.ExecuteSelect(sql1);
                        if (r1 != null && r1.Rows != null && r1.Rows.Count > 0 && r1.Rows[0] != null &&
                            r1.Rows[0].ItemArray != null && r1.Rows[0].ItemArray.Length > 0)
                        {
                            var r2 = r1.Rows[0];
                            var r3 = r2.ItemArray[0];
                            group_id = Convert.ToInt64(r3);
                        }
                        else
                        {
                            result.query1Fallita = true;
                        }
                    }
                }
                catch (Exception ex1)
                {
                    Console.WriteLine(ex1);
                    var ex1m = "1" + "\n\n" + ex1.Message + "\n\n" + sql1 + "\n\n" + gruppoTG.idLink + "\n\n" +
                               gruppoTG.nome + "\n\n" + gruppoTG.newLink + "\n\n" + gruppoTG.permanentId;
                    await sender.SendTextMessageAsync(e.Message.From.Id,
                                                      new Language(
                                                          new Dictionary <string, string>
                    {
                        {
                            "it",
                            ex1m
                        }
                    }),
                                                      ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username);

                    result.gruppoTG = gruppoTG;
                    result.successoGenerazioneLink = SuccessoGenerazioneLink.ERRORE;
                    result.ExceptionMessage        = ex1m;
                    result.ExceptionObject         = ex1;
                    L.Add(result);

                    return;
                }
            }

            var sql2 = "SELECT id FROM Groups WHERE Groups.title LIKE '%' || @nome || '%'";

            if (group_id == null)
            {
                try
                {
                    if (group_id == null && !string.IsNullOrEmpty(gruppoTG.nome))
                    {
                        var r1 = SqLite.ExecuteSelect(sql2, new Dictionary <string, object> {
                            { "@nome", gruppoTG.nome }
                        });
                        if (r1 != null && r1.Rows != null && r1.Rows.Count > 0 && r1.Rows[0] != null &&
                            r1.Rows[0].ItemArray != null && r1.Rows[0].ItemArray.Length > 0)
                        {
                            var r2 = r1.Rows[0];
                            var r3 = r2.ItemArray[0];
                            group_id = Convert.ToInt64(r3);
                        }
                        else
                        {
                            result.query2Fallita = true;
                        }
                    }
                }
                catch (Exception ex2)
                {
                    Console.WriteLine(ex2);
                    var ex2m = "2" + "\n\n" + ex2.Message + "\n\n" + sql2 + "\n\n" + gruppoTG.nome;
                    await sender.SendTextMessageAsync(e.Message.From.Id,
                                                      new Language(
                                                          new Dictionary <string, string>
                    {
                        {
                            "it",
                            ex2m
                        }
                    }),
                                                      ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username);

                    result.gruppoTG = gruppoTG;
                    result.successoGenerazioneLink = SuccessoGenerazioneLink.ERRORE;
                    result.ExceptionMessage        = ex2m;
                    result.ExceptionObject         = ex2;
                    L.Add(result);

                    return;
                }
            }

            if (group_id == null)
            {
                result.gruppoTG = gruppoTG;
                result.successoGenerazioneLink = SuccessoGenerazioneLink.ERRORE;
                L.Add(result);
            }
            else
            {
                NuovoLink s3 = null;
                try
                {
                    if (group_id != null)
                    {
                        gruppoTG.UpdateID(group_id.Value);

                        s3 = await CreateInviteLinkAsync(group_id.Value, sender, e);

                        if (s3 != null)
                        {
                            gruppoTG.UpdateNewLink(s3.link);
                        }
                    }
                }
                catch (Exception ex3)
                {
                    Console.WriteLine(ex3);
                    var ex3m = "3" + "\n\n" + ex3.Message;
                    await sender.SendTextMessageAsync(e.Message.From.Id,
                                                      new Language(
                                                          new Dictionary <string, string>
                    {
                        {
                            "it",
                            ex3m
                        }
                    }),
                                                      ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username);

                    result.gruppoTG = gruppoTG;
                    result.successoGenerazioneLink = SuccessoGenerazioneLink.ERRORE;
                    result.ExceptionMessage        = ex3m;
                    result.ExceptionObject         = ex3;
                    result.createInviteLinkFallita = true;
                    L.Add(result);

                    return;
                }

                var successoGenerazione = GetSuccessoGenerazione(s3);

                result.gruppoTG = gruppoTG;
                result.successoGenerazioneLink = successoGenerazione;
                L.Add(result);
            }
        }
Ejemplo n.º 3
0
 public GruppoTG_Update(GruppoTG p, SuccessoGenerazioneLink eRRORE)
 {
     gruppoTG = p;
     successoGenerazioneLink = eRRORE;
 }