[Application]C# Console RSS Reader

A place to discuss development on the Microsoft .NET framework platform utilizing languages such as C#, Visual Basic, J# and Managed C++

Moderators: IRC Operators, Support Team

User avatar
Remy
User
User
Posts: 582
Joined: Sat Jun 03, 2006 8:50 am

[Application]C# Console RSS Reader

Postby Remy » Mon Jul 02, 2007 7:50 pm

Code: Select all

using System;
using System.Xml;

namespace ConsoleRSSReader
{
    class Program
    {
        public static XmlTextReader Reader;
        public static XmlDocument Document;
        public static XmlNode Rss;
        public static XmlNode Channel;
        public static XmlNode Item;
        public static bool error;
           
        [STAThread]
        static void Main(string[] args)
        {
            Console.Title = "RSS Reader";
            Console.WriteLine("Enter the URL of the feed, or leave it blank to get from clipboard:");
            string URL = Console.ReadLine();

            if (URL == "")
            {
               URL = System.Windows.Forms.Clipboard.GetText();
               Console.WriteLine(URL);
            }

            if ((URL.Length < 7) || (URL.Substring(0, 7).ToLower() != "http://"))
            {
                URL = "http://" + URL;
            }

            try
            {
                Reader = new XmlTextReader(URL);
                Document = new XmlDocument();
                Document.Load(Reader);
            }

            catch
            {
                error = true;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("An error occured while opening " + URL);
                Console.ReadLine();
            }

            if (error != true)
            {
                for (int i = 0; i < Document.ChildNodes.Count; i++)
                {
                    if (Document.ChildNodes[i].Name == "rss")
                    {
                        Rss = Document.ChildNodes[i];
                    }
                }

                for (int i = 0; i < Rss.ChildNodes.Count; i++)
                {
                    if (Rss.ChildNodes[i].Name == "channel")
                    {
                        Channel = Rss.ChildNodes[i];
                    }
                }

                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("\r\nInformation about this feed:");

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("Title: " + Channel["title"].InnerText);
                Console.WriteLine("Language: " + Channel["language"].InnerText);
                Console.WriteLine("URL: " + Channel["link"].InnerText);
                Console.WriteLine("Description: " + Channel["description"].InnerText);

                Console.ReadLine();

                int num = 0;

                for (int i = 0; i < Channel.ChildNodes.Count; i++)
                {
                    if (Channel.ChildNodes[i].Name == "item")
                    {
                        num++;
                    }
                }

                string[,] datarray = new string[num, 2];
                num = 0;

                for (int i = 0; i < Channel.ChildNodes.Count; i++)
                {
                    if (Channel.ChildNodes[i].Name == "item")
                    {
                        Item = Channel.ChildNodes[i];
                        datarray[num, 0] = Item["title"].InnerText;
                        datarray[num, 1] = Item["link"].InnerText;

                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine(num + ":");

                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("Title: " + datarray[num, 0]);

                        Console.ForegroundColor = ConsoleColor.Blue;
                        Console.WriteLine("URL: " + datarray[num, 1] + "\r\n");

                        num++;
                    }
                }

                Console.ForegroundColor = ConsoleColor.Gray;
                Console.WriteLine("\r\nTo open the URL, press its corresponding number.");

                try
                {
                    string temp = Console.ReadLine();
                    int id = Convert.ToInt32(temp);
                    System.Diagnostics.Process proc = new System.Diagnostics.Process();
                    proc.StartInfo.FileName = datarray[id, 1];
                    proc.Start();
                }

                catch
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Invalid ID.");
                    Console.ReadLine();
                }
            }
        }
    }
}


This is an application that allows you to read RSS feeds from the website you enter. If you press enter without entering a URL, it will read it from your clipboard. Please any suggestions you have for improving the functionality and efficiency of this application. :D

Link to the source on a Pastebin with Syntax Highlighting (Much easier to read): http://paste.stirk.org/941

The file is available at: http://remy.stirk.org/programs/ConsoleRSSReader.exe
Last edited by Remy on Tue Jan 08, 2008 9:37 pm, edited 2 times in total.
Merrick178
User
User
Posts: 27
Joined: Tue Mar 21, 2006 2:11 am

Postby Merrick178 » Mon Jul 02, 2007 8:46 pm

Veri secksi Remy!

Give us the .exe =(
Image

Return to “.NET”

Who is online

Users browsing this forum: No registered users and 1 guest