示例#1
0
        public IEnumerable <ForumMetadata> Private_FetchAllForums()
        {
            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Debug, "START FetchAllForums()");
            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Info, "Fetching Forums from SA...");

            string url = string.Format("{0}/{1}?forumid=1", CoreConstants.BASE_URL, CoreConstants.FORUM_PAGE_URI);
            var    web = new AwfulWebClient();
            var    doc = web.FetchHtml(url).ToHtmlDocument();

            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Info, "Forum fetch complete. Parsing...");

            var result = ForumParser.ParseForumList(doc);

            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Info, "Parse complete.");

#if DEBUG
            Debug.WriteLine("Performing Sanitization Check...");
            bool clear = SanitizationCheck(result);
            Debug.WriteLine("Check Result: " + clear);
            foreach (var forum in result)
            {
                Debug.WriteLine(forum);
            }
#endif
            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Debug, "END FetchAllForums()");
            return(result);
        }
示例#2
0
        public static bool RunURLTask(string url)
        {
            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url);

            return(doc != null);
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="result"></param>
        public ICollection <PrivateMessageFolderMetadata> FetchFolders()
        {
            // pull inbox html from server
            string url = string.Format("{0}/{1}?folderid={2}", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI, INBOX_MESSAGE_FOLDERID);
            var    web = new AwfulWebClient();
            var    doc = web.FetchHtml(url).ToHtmlDocument();

            List <PrivateMessageFolderMetadata> folders = null;

            if (doc != null)
            {
                folders = new List <PrivateMessageFolderMetadata>();
                folders.AddRange(PrivateMessageParser.ParseFolderList(doc));
                if (folders.Count > 0)
                {
                    // let's cheat a little bit by parsing the inbox as well...
                    var messages = PrivateMessageParser.ParseMessageList(doc);
                    foreach (var message in messages)
                    {
                        folders[0].Messages.Add(message);
                    }
                }
            }

            return(folders);
        }
示例#4
0
        public IEnumerable<ForumMetadata> Private_FetchAllForums()
        {
            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Debug, "START FetchAllForums()");
            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Info, "Fetching Forums from SA...");

            string url = string.Format("{0}/{1}?forumid=1", CoreConstants.BASE_URL, CoreConstants.FORUM_PAGE_URI);
            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();

            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Info, "Forum fetch complete. Parsing...");

            var result = ForumParser.ParseForumList(doc);

            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Info, "Parse complete.");

            #if DEBUG
            Debug.WriteLine("Performing Sanitization Check...");
            bool clear = SanitizationCheck(result);
            Debug.WriteLine("Check Result: " + clear);
            foreach (var forum in result)
                Debug.WriteLine(forum);
            #endif
            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Debug, "END FetchAllForums()");
            return result;
        }
示例#5
0
        private IEnumerable <TagMetadata> Private_FetchAllSmilies()
        {
            var client   = new AwfulWebClient();
            var document = client.FetchHtml(SMILEY_REQUEST_URI).ToHtmlDocument();
            var smilies  = SmileyParser.ParseSmiliesFromNode(document);

            return(smilies);
        }
示例#6
0
        private IPrivateMessageRequest GetMessageRequest(string url)
        {
            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();

            PrivateMessageRequest request = PrivateMessageParser.ParseNewPrivateMessageFormDocument(doc);

            return(request);
        }
示例#7
0
        private static LoginRequiredEventArgs OnLoginRequired(AwfulWebClient client)
        {
            LoginRequiredEventArgs args = null;

            if (LoginRequired != null)
            {
                args = new LoginRequiredEventArgs();
                LoginRequired(client, args);
            }

            return(args);
        }
示例#8
0
        private string BeginGetTextFromWebForm(string webUrl)
        {
            var web = new AwfulWebClient();
            var url = webUrl;
            var doc = web.FetchHtml(url).ToHtmlDocument();

            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Debug, string.Format("ThreadReplyServer - Retrieving text from '{0}'.", url));

            string bodyText = GetFormText(doc.DocumentNode);

            return(HttpUtility.HtmlDecode(bodyText));
        }
        /// <summary>
        /// TODO : Add summary here.
        /// </summary>
        /// <param name="result"></param>
        public PrivateMessageFolderEditor BeginEditFolderRequest()
        {
            var web = new AwfulWebClient();
            var url = string.Format("{0}/{1}?action=editfolders", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI);
            var doc = web.FetchHtml(url).ToHtmlDocument();
            PrivateMessageFolderEditor editor = null;
            if (doc != null)
            {
                editor = PrivateMessageParser.ParseEditFolderPage(doc);
            }

            return editor;
        }
示例#10
0
        private ThreadReplyData?GetReplyData(string threadID, string text)
        {
            ThreadReplyData reply;
            string          url = String.Format("http://forums.somethingawful.com/newreply.php?action=newreply&threadid={0}",
                                                threadID);

            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();

            reply      = GetReplyFormInfo(threadID, doc);
            reply.TEXT = text;
            return(reply);
        }
示例#11
0
        /// <summary>
        /// TODO: Add summary here.
        /// </summary>
        /// <param name="folderID"></param>
        /// <param name="result"></param>
        public PrivateMessageFolderMetadata FetchFolder(int folderID)
        {
            string url = string.Format("{0}/{1}?folderid={2}", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI, folderID);
            var    web = new AwfulWebClient();
            var    doc = web.FetchHtml(url).ToHtmlDocument();
            PrivateMessageFolderMetadata folder = null;

            if (doc != null)
            {
                folder = PrivateMessageParser.ParsePrivateMessageFolder(doc);
            }

            return(folder);
        }
示例#12
0
        /// <summary>
        /// TODO : Add summary here.
        /// </summary>
        /// <param name="result"></param>
        public PrivateMessageFolderEditor BeginEditFolderRequest()
        {
            var web = new AwfulWebClient();
            var url = string.Format("{0}/{1}?action=editfolders", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI);
            var doc = web.FetchHtml(url).ToHtmlDocument();
            PrivateMessageFolderEditor editor = null;

            if (doc != null)
            {
                editor = PrivateMessageParser.ParseEditFolderPage(doc);
            }

            return(editor);
        }
示例#13
0
        public PrivateMessageMetadata FetchMessage(int privateMessageId)
        {
            PrivateMessageMetadata message = null;
            var web = new AwfulWebClient();
            var url = string.Format("{0}/{1}?action=show&privatemessageid={2}", CoreConstants.BASE_URL,
                                    CoreConstants.PRIVATE_MESSAGE_URI,
                                    privateMessageId);

            var doc = web.FetchHtml(url).ToHtmlDocument();

            if (doc != null)
            {
                message = PrivateMessageParser.ParsePrivateMessageDocument(doc);
            }

            return(message);
        }
示例#14
0
 public static bool RunURLTask(string url)
 {
     var web = new AwfulWebClient();
     var doc = web.FetchHtml(url);
     return doc != null;
 }
示例#15
0
        private static LoginRequiredEventArgs OnLoginRequired(AwfulWebClient client)
        {
            LoginRequiredEventArgs args = null;
            if (LoginRequired != null)
            {
                args = new LoginRequiredEventArgs();
                LoginRequired(client, args);
            }

            return args;
        }
        private IPrivateMessageRequest GetMessageRequest(string url)
        {
            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();

            PrivateMessageRequest request = PrivateMessageParser.ParseNewPrivateMessageFormDocument(doc);
            return request;
        }
        public PrivateMessageMetadata FetchMessage(int privateMessageId)
        {
            PrivateMessageMetadata message = null;
            var web = new AwfulWebClient();
            var url = string.Format("{0}/{1}?action=show&privatemessageid={2}", CoreConstants.BASE_URL,
                CoreConstants.PRIVATE_MESSAGE_URI,
                privateMessageId);

            var doc = web.FetchHtml(url).ToHtmlDocument();
            if (doc != null)
                message = PrivateMessageParser.ParsePrivateMessageDocument(doc);

            return message;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="result"></param>
        public ICollection<PrivateMessageFolderMetadata> FetchFolders()
        {
            // pull inbox html from server
            string url = string.Format("{0}/{1}?folderid={2}", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI, INBOX_MESSAGE_FOLDERID);
            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();

            List<PrivateMessageFolderMetadata> folders = null;
            if (doc != null)
            {
                folders = new List<PrivateMessageFolderMetadata>();
                folders.AddRange(PrivateMessageParser.ParseFolderList(doc));
                if (folders.Count > 0)
                {
                    // let's cheat a little bit by parsing the inbox as well...
                    var messages = PrivateMessageParser.ParseMessageList(doc);
                    foreach (var message in messages)
                    {
                        folders[0].Messages.Add(message);
                    }
                }
            }

            return folders;
        }
        /// <summary>
        /// TODO: Add summary here.
        /// </summary>
        /// <param name="folderID"></param>
        /// <param name="result"></param>
        public PrivateMessageFolderMetadata FetchFolder(int folderID)
        {
            string url = string.Format("{0}/{1}?folderid={2}", CoreConstants.BASE_URL, CoreConstants.PRIVATE_MESSAGE_URI, folderID);
            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();
            PrivateMessageFolderMetadata folder = null;
            if (doc != null)
            {
                folder = PrivateMessageParser.ParsePrivateMessageFolder(doc);
            }

            return folder;
        }
示例#20
0
 private IEnumerable<TagMetadata> Private_FetchAllSmilies()
 {
     var client = new AwfulWebClient();
     var document = client.FetchHtml(SMILEY_REQUEST_URI).ToHtmlDocument();
     var smilies = SmileyParser.ParseSmiliesFromNode(document);
     return smilies;
 }
示例#21
0
        private string BeginGetTextFromWebForm(string webUrl)
        {
            var web = new AwfulWebClient();
            var url = webUrl;
            var doc = web.FetchHtml(url).ToHtmlDocument();

            AwfulDebugger.AddLog(this, AwfulDebugger.Level.Debug, string.Format("ThreadReplyServer - Retrieving text from '{0}'.", url));

            string bodyText = GetFormText(doc.DocumentNode);
            return HttpUtility.HtmlDecode(bodyText);
        }
示例#22
0
        private ThreadReplyData? GetReplyData(string threadID, string text)
        {
            ThreadReplyData reply;
            string url = String.Format("http://forums.somethingawful.com/newreply.php?action=newreply&threadid={0}",
                threadID);

            var web = new AwfulWebClient();
            var doc = web.FetchHtml(url).ToHtmlDocument();

            reply = GetReplyFormInfo(threadID, doc);
            reply.TEXT = text;
            return reply;
        }