コード例 #1
0
ファイル: IRCClient.cs プロジェクト: tabaha/meguca
 private void Ping(object sender, IRCEventArgs e)
 {
     if (e.Tokens[0].Equals("PING"))
     {
         Send(string.Format("PONG {0}", e.Tokens[1].Substring(1)));
     }
 }
コード例 #2
0
ファイル: IRCClient.cs プロジェクト: tabaha/meguca
 private async void Identify(object sender, IRCEventArgs e)
 {
     if (e.Tokens[1].Equals("251"))
     {
         if (!string.IsNullOrWhiteSpace(Settings.NickservPassword))
         {
             await SendAsync($"PRIVMSG NickServ :Identify {Settings.NickservPassword}");
         }
         System.Threading.Thread.Sleep(1000);
         foreach (string channel in Settings.AutoJoinChannels)
         {
             await SendAsync($"JOIN {channel}");
         }
     }
 }
コード例 #3
0
ファイル: IRCClient.cs プロジェクト: tabaha/meguca
        private async void GetPixivAsync(object sender, IRCEventArgs args)
        {
            if (args.Tokens[1] == "PRIVMSG" && args.Tokens[2] == "#onioniichan")
            {
                var msgToken = args.Tokens[3];
                if (msgToken.StartsWith(":"))
                {
                    msgToken = msgToken.Substring(1);
                }
                if (msgToken.Contains(Pixiv.Utils.WorkPageURL_EN) || msgToken.Contains(Pixiv.Utils.WorkPageURL))
                {
                    try {
                        long id      = Pixiv.Utils.GetWorkID(msgToken);
                        var  channel = DiscordClient.Client.GetChannel(337692280267997196) as IMessageChannel;
                        var  illust  = await PixivDownloader.GetIllustration(id);

                        string tags = illust.Tags.ToString();
                        foreach (var result in PixivDownloader.DownloadIllistrationAsync(illust, maxBytes: 8388119).ToList())
                        {
                            using (var image = await result) {
                                string text = image.PageNumber == 0 ? $"Tags: {tags}" : string.Empty;
                                if (!image.IsOriginal)
                                {
                                    text += " (preview version)";
                                }
                                var response = await channel.SendFileAsync(image.ImageData, image.Filename, string.IsNullOrEmpty(text)?null : text.Trim());

                                foreach (var attach in response.Attachments.Select(a => a.Url))
                                {
                                    await SendToChannelAsync("#onioniichan", attach);
                                }
                            }
                        }
                    }
                    catch (Exception ex) {
                        Console.WriteLine(ex.Message);
                        await SendToChannelAsync("#onioniichan", "Error fetching the image");
                    }
                    finally {
                    }
                }
            }
        }
コード例 #4
0
ファイル: IRCClient.cs プロジェクト: tabaha/meguca
 private void DisplayLine(object sender, IRCEventArgs e)
 {
     Console.WriteLine(e.Line);
 }
コード例 #5
0
ファイル: IRCClient.cs プロジェクト: tabaha/meguca
 public virtual void OnWriteLine(IRCEventArgs args)
 {
     WriteLine?.Invoke(this, args);
 }
コード例 #6
0
ファイル: IRCClient.cs プロジェクト: tabaha/meguca
 public virtual void OnReadLine(IRCEventArgs args)
 {
     ReadLine?.Invoke(this, args);
 }