예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        /// <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);
        }