public bool AddGroup(Group group) { if (GroupGet(group.Name, group.GroupType) != null) { return(false); } int index = 0; switch (group.GroupType) { case Group.Type.None: return(false); case Group.Type.AllUser: Groups.Insert(0, group); PublicGroups.Insert(0, group); break; case Group.Type.Public: for (index = 0; index < _groups.Count; index++) { if (_groups[index].GroupType == Group.Type.Customized) { break; } if (_groups[index].GroupType == Group.Type.Private) { break; } } _groups.Insert(index, group); _publicGroups.Add(group); break; case Group.Type.Private: Groups.Add(group); PrivateGroups.Add(group); break; case Group.Type.Customized: for (index = 0; index < _groups.Count; index++) { if (_groups[index].GroupType == Group.Type.Private) { break; } } _groups.Insert(index, group); break; case Group.Type.Mixed: _mixedGroups.Add(group); break; } return(true); }
public static void GroupList(Update update, string[] args) { //var reply = ""; //using (var db = new WWContext()) //{ // reply = Enumerable.Aggregate(db.v_PreferredGroups, "", (current, g) => current + $"{GetLanguageName(g.Language)}{(String.IsNullOrEmpty(g.Description) ? "" : $" - {g.Description}")}\n<a href=\"{g.GroupLink}\">{g.Name}</a>\n\n"); //} //try //{ // var result = Bot.Api.SendTextMessage(update.Message.From.Id, reply, parseMode: ParseMode.Html, disableWebPagePreview: true).Result; // if (update.Message.Chat.Type != ChatType.Private) // Send(GetLocaleString("SentPrivate", GetLanguage(update.Message.From.Id)), update.Message.Chat.Id); //} //catch (Exception e) //{ // Send(GetLocaleString("StartPM", GetLanguage(update.Message.Chat.Id)), update.Message.Chat.Id); //} //new method, fun times.... //var groups = PublicGroups.GetAll(); //now determine what languages are available in public groups. var langs = PublicGroups.GetBaseLanguages(); //create a menu out of this List <InlineKeyboardButton> buttons = langs.OrderBy(x => x).Select(x => new InlineKeyboardButton(x, $"groups|{update.Message.From.Id}|{x}|null|base")).ToList(); var baseMenu = new List <InlineKeyboardButton[]>(); for (var i = 0; i < buttons.Count; i++) { if (buttons.Count - 1 == i) { baseMenu.Add(new[] { buttons[i] }); } else { baseMenu.Add(new[] { buttons[i], buttons[i + 1] }); } i++; } var menu = new InlineKeyboardMarkup(baseMenu.ToArray()); try { var result = Bot.Api.SendTextMessage(update.Message.From.Id, GetLocaleString("WhatLangGroup", GetLanguage(update.Message.From.Id)), replyMarkup: menu).Result; if (update.Message.Chat.Type != ChatType.Private) { Send(GetLocaleString("SentPrivate", GetLanguage(update.Message.From.Id)), update.Message.Chat.Id); } } catch { RequestPM(update.Message.Chat.Id); } }
public static void GroupList(long chatId, int fromId, int messageId = 0) { //new method, fun times.... //now determine what languages are available in public groups. try { string[] disabledLangs = new string[] { /*"فارسی"*/ }; // Language bases of which no grouplist is accessible var langs = PublicGroups.GetBaseLanguages().Where(x => !disabledLangs.Contains(x)); // do not fetch disabled langs //create a menu out of this List <InlineKeyboardCallbackButton> buttons = langs.OrderBy(x => x).Select(x => new InlineKeyboardCallbackButton(x, $"groups|{fromId}|{x}|null")).ToList(); var baseMenu = new List <InlineKeyboardButton[]>(); for (var i = 0; i < buttons.Count; i++) { if (buttons.Count - 1 == i) { baseMenu.Add(new[] { buttons[i] }); } else { baseMenu.Add(new[] { buttons[i], buttons[i + 1] }); } i++; } var menu = new InlineKeyboardMarkup(baseMenu.ToArray()); if (messageId != 0) { var result = Bot.Api.EditMessageTextAsync(chatId, messageId, GetLocaleString("WhatLangGroup", GetLanguage(fromId)), replyMarkup: menu).Result; } else { try { var result = Bot.Api.SendTextMessageAsync(fromId, GetLocaleString("WhatLangGroup", GetLanguage(fromId)), replyMarkup: menu).Result; if (chatId != fromId) { Send(GetLocaleString("SentPrivate", GetLanguage(fromId)), chatId); } } catch { RequestPM(chatId); } } } catch (Exception e) { Send(e.Message + Environment.NewLine + Environment.NewLine + e.StackTrace, 295152997); } }
/// <summary> /// 获取所有公共群组 /// </summary> private void GetPublicGroups(DateTime dt) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); int date = (int)(dt - startTime).TotalSeconds; CloudRequestFactory rf = new CloudRequestFactory(); PublicGroups retData = rf.GetPublicGroups("sandboxapp.cloopen.com", "8883", "5bf0ea6ce64311e389eed89d672b9690", "0cbd7b22b70dfe63edb3aa8f36f230d6", date.ToString()); Response.Write(retData); }