Esempio n. 1
0
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            if (entries == null)
            {
                return(null);
            }

            Rss.RssItem entry = entries[position];

            var view = (convertView ?? context.LayoutInflater.Inflate(Resource.Layout.NewsListItem, parent, false)) as LinearLayout;

            TextView tvName = view.FindViewById <TextView>(Resource.Id.tvName);

            if (!entry.IsRead)
            {
                tvName.SetTypeface(Typeface.DefaultBold, TypefaceStyle.Bold);
            }

            tvName.Text = entry.Title;

            TextView tvDate = view.FindViewById <TextView>(Resource.Id.tvDate);

            if (entry.PubDate.HasValue)
            {
                tvDate.Text = entry.PubDate.ToString();
            }
            else
            {
                tvDate.Visibility = ViewStates.Gone;
            }

            return(view);
        }
Esempio n. 2
0
        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            List <Rss.RssItem> ret = new List <Rss.RssItem>();

            UserImageGalleryDb db = (new UserImageGalleryDb());

            UserImageGalleryPlaceholderData placeholderData = db.getUserImageGalleryPlaceholderData(page, placeholderDefinition.Identifier, langToRenderFor, true);
            string imageStorageDir = placeholderData.getImageStorageDirectory(page);

            CmsLocalImageOnDisk[] allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(imageStorageDir, UserImageGalleryPlaceholderData.ImageExtensionsToDisplay);

            foreach (CmsLocalImageOnDisk image in allResources)
            {
                Rss.RssItem item  = new Rss.RssItem();
                string      title = image.getImageCaption();
                if (title == "")
                {
                    title = image.FileName;
                }
                item.Title = title;

                Dictionary <string, string> pageParams = new Dictionary <string, string>();
                pageParams.Add(UrlParamName, image.ResourceId.ToString());
                item.Link = new Uri(page.getUrl(pageParams));


                item.Description = renderFullSize(placeholderData, image, page, langToRenderFor);

                ret.Add(item);
            } // foreach


            return(ret.ToArray());
        }
Esempio n. 3
0
        //(t => t.RelationshipType == "enclosure");
        //(t => t.RelationshipType == "alternate");

        public static RssTorrent ToTorrent(this Rss.RssItem item)
        {
            RssTorrent rt = new RssTorrent(item.Guid.Name)
            {
                Name          = item.Title,
                Summary       = item.Description,
                TimePublished = item.PubDate,
            };

            if (item.Enclosure != null)
            {
                if (item.Enclosure.Type == "application/x-bittorrent")
                {
                    rt.TorrentFileUrl = item.Enclosure.Url.ToString();
                }
            }
            else
            {
                string url = item.Link.ToString();
                if (Utility.IsMagnetLink(url))
                {
                    rt.TorrentMagnetUrl = url;
                }
                else
                {
                    // Warning: This URL might not be the .torrent file. (In case of https://animetosho.org)
                    rt.TorrentFileUrl = url;
                }
            }

            return(rt);
        }
        } // RenderView

        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            Rss.RssItem rssItem = CreateAndInitRssItem(page, langToRenderFor);
            rssItem.Description = page.renderPlaceholderToString(placeholderDefinition, langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters);

            return(new Rss.RssItem[] { rssItem });
        }
Esempio n. 5
0
        public RSSEvents(string channelDescription, string channelTittle, string webmaster)
        {
            rss = new Rss.RssFeed();
            if (rss.Channels.Count == 0)
            {
                Rss.RssFeed    rs  = new Rss.RssFeed();
                Rss.RssChannel ch  = new Rss.RssChannel();
                string         cat = "";
                //if (rssfile.Contains(@"\Components\")) { cat = "Componente forte"; }
                //if (rssfile.Contains(@"\Environments\")) { cat = "Entorno forte"; }
                ch.Description = channelDescription;
                ch.Title       = channelTittle;
                ch.WebMaster   = webmaster;
                Rss.RssItem rt = new Rss.RssItem();
                rt.Author      = webmaster;
                rt.Description = channelDescription;
                rt.PubDate     = DateTime.Now;
                rt.Title       = channelTittle;

                ch.Items.Add(rt);
                ch.LastBuildDate = DateTime.Now;
                ch.PubDate       = DateTime.Now;
                //ch.Link = new Uri(httplink);
                rss.Channels.Add(ch);
            }
        }
        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            base.categoryList = db.fetchCategoryList(langToRenderFor);

            RenderParameters renderParams = RenderParameters.FromPlaceholderParamList(placeholderDefinition.ParamList);

            CmsUrlFormat pageLinkFormat = CmsUrlFormat.FullIncludingProtocolAndDomainName;
            CmsUrlFormat fileLinkFormat = CmsUrlFormat.FullIncludingProtocolAndDomainName;

            FileAggItem[] filesToShow = FetchAllFilesToShow(page, placeholderDefinition.Identifier, langToRenderFor, renderParams, pageLinkFormat, fileLinkFormat);

            List <Rss.RssItem> ret = new List <Rss.RssItem>();

            foreach (FileAggItem file in filesToShow)
            {
                Rss.RssItem rssItem = CreateAndInitRssItem(page, langToRenderFor);

                // -- link directly to the file url
                rssItem.Link = new Uri(file.FileDownloadURL, UriKind.RelativeOrAbsolute);
                rssItem.Guid = new Rss.RssGuid(rssItem.Link);

                rssItem.Title       = file.Title;
                rssItem.Description = file.Description;
                rssItem.PubDate_GMT = file.LastModified.ToUniversalTime();

                ret.Add(rssItem);
            } // foreach file
            return(ret.ToArray());
        }     // GetRssFeedItems
        } // RenderEdit

        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            List <Rss.RssItem> ret = new List <Rss.RssItem>();
            Dictionary <CmsPage, CmsPlaceholderDefinition[]> childJobPages = CmsContext.getAllPlaceholderDefinitions("JobPostingDetails", page, CmsContext.PageGatheringMode.ChildPagesOnly);

            if (childJobPages.Count > 0)
            {
                JobPostingLocation[] allLocations            = JobPostingLocation.FetchAll();
                JobPostingLocation   theAllLocationsLocation = JobPostingLocation.getAllLocations(allLocations);

                JobPostingDb             db             = new JobPostingDb();
                JobPostingAggregatorData aggregatorData = db.getJobPostingAggregatorData(page, placeholderDefinition.Identifier, langToRenderFor, true);

                // -- grab all the details for all child job pages.


                foreach (CmsPage childPage in childJobPages.Keys)
                {
                    foreach (CmsPlaceholderDefinition phDef in childJobPages[childPage])
                    {
                        JobPostingDetailsData dataObj = db.getJobPostingDetailsData(childPage, phDef.Identifier, langToRenderFor, true);
                        if (!dataObj.IsExpired && (aggregatorData.LocationId < 0 || aggregatorData.LocationId == theAllLocationsLocation.JobLocationId || dataObj.LocationId == aggregatorData.LocationId))
                        {
                            Rss.RssItem rssItem = CreateAndInitRssItem(childPage, langToRenderFor);
                            rssItem.Description = childPage.renderAllPlaceholdersToString(langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters);
                            ret.Add(rssItem);
                        }
                    }
                } // foreach child page
            }


            return(ret.ToArray());
        }
Esempio n. 8
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            Logging.Log(this, Logging.LoggingTypeDebug, "OnCreate");

            SetContentView(Resource.Layout.News);

            if (Intent.GetBooleanExtra("RELOADFEEDS", false))
            {
                new FeedHelper().UpdateBGFeeds(this);
            }


            ListView lvNews = FindViewById <ListView>(Resource.Id.lvNews);

            lvNews.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e)
            {
                if (adapter == null || adapter.GetEntries == null)
                {
                    return;
                }

                Rss.RssItem entry  = adapter.GetEntries[e.Position];
                Intent      intent = new Intent(this, typeof(NewsDetails));
                intent.PutExtra("FeedID", entry.FeedID);
                intent.PutExtra("FeedItemID", entry.ItemID);

                StartActivity(intent);
            };
        }
        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            List <Rss.RssItem> ret = new List <Rss.RssItem>();

            // -- get the news
            NewsArticleDb.NewsArticleAggregatorData aggData = (new NewsArticleDb()).fetchNewsAggregator(page, placeholderDefinition.Identifier, langToRenderFor, true);
            RenderParameters renderParams = RenderParameters.fromParamList(placeholderDefinition.ParamList, aggData);

            NewsAggItem[] newsItems = FetchAllNewsAggItems(page, placeholderDefinition.Identifier, langToRenderFor, renderParams, CmsUrlFormat.FullIncludingProtocolAndDomainName);

            int currYear = renderParams.AggregatorData.YearToDisplay;

            foreach (NewsAggItem newsItem in newsItems)
            {
                if (currYear < 0 || newsItem.NewsDate.Year == currYear)
                {
                    Rss.RssItem rssItem = new Rss.RssItem();
                    rssItem = InitRssItem(rssItem, page, langToRenderFor);

                    rssItem.Title = newsItem.Title;

                    rssItem.Link = new Uri(newsItem.PageDisplayURL, UriKind.RelativeOrAbsolute);
                    rssItem.Guid = new Rss.RssGuid(rssItem.Link);

                    rssItem.PubDate_GMT = newsItem.NewsDate.ToUniversalTime();

                    rssItem.Description = newsItem.NewsArticleHtml;

                    ret.Add(rssItem);
                }
            }


            return(ret.ToArray());
        } // GetRssFeedItems
Esempio n. 10
0
        internal string getHTMLOutput()
        {
            string html            = "";
            Stack <Rss.RssItem> st = new Stack <Rss.RssItem>();

            foreach (Rss.RssItem rit in rss.Channels[0].Items)
            {
                st.Push(rit);
            }
            int posts = 7;

            while (st.Count > 0 && posts > 0)
            {
                Rss.RssItem rit   = st.Pop();
                string      rpost = "";
                rpost = post.Replace("%titulo%", rit.Title);
                rpost = rpost.Replace("%usuario%", rit.Author);
                rpost = rpost.Replace("%fecha%", rit.PubDate.AddHours(-2).ToString("dddd, dd/MM/yyyy HH:mm"));
                rpost = rpost.Replace("%entry%", rit.Description);
                html += rpost + "\r\n";
                --posts;
            }

            return(html);
        }
Esempio n. 11
0
 public void addNewPostNoSaveFile(string title, string usuario, string entry)
 {
     Rss.RssItem it = new Rss.RssItem();
     it.Title       = title;
     it.Author      = usuario;
     it.Description = entry;
     it.PubDate     = DateTime.Now;
     rss.Channels[0].Items.Add(it);
     //rss.Write(this.rssfile);
 }
        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            Rss.RssItem        rssItem = base.CreateAndInitRssItem(page, langToRenderFor);
            PlainTextContentDb db      = new PlainTextContentDb();
            string             html    = db.getPlainTextContent(page, placeholderDefinition.Identifier, langToRenderFor, true);

            rssItem.Description = html;

            return(new Rss.RssItem[] { rssItem });
        }
Esempio n. 13
0
        private bool FillPosts(FeedItem feedItem)
        {
            Rss.RssChannel rssChannel = Utils.GetFeed(feedItem).Channels[0];
            bool           boolRead   = false;

            PostsListView.Items.Clear();

            PostsListView.BeginUpdate();

            rssChannel.Items.Sort();
            for (int q = 0; q < rssChannel.Items.Count; q++)
            {
                if (feedItem.ReadPosts != null)
                {
                    foreach (string hashRead in feedItem.ReadPosts)
                    {
                        boolRead = false;
                        string strHash = rssChannel.Items[q].GetHashCode().ToString();
                        if (hashRead == strHash)
                        {
                            boolRead = true;
                            break;
                        }
                    }
                }
                else
                {
                    boolRead = false;
                }
                Rss.RssItem rssItem = rssChannel.Items[q];

                if (rssItem.Enclosure != null)
                {
                    // RssItem rssItem = rssFeed.Items[q];
                    rssItem.Read = boolRead;
                    if (Settings.Default.History[rssItem.GetHashCode().ToString()] == null)
                    {
                        rssItem.EnclosureDownloaded = false;
                        ListViewItem lvi = new ListViewItem();

                        lvi.SubItems.Add(rssItem.Title);
                        lvi.SubItems.Add(rssItem.PubDate.ToString("yyyy-MM-dd"));
                        lvi.Tag = rssItem;
                        PostsListView.Items.Add(lvi);
                    }
                }
            }

            foreach (ColumnHeader c in PostsListView.Columns)
            {
                c.Width = -2;
            }
            PostsListView.EndUpdate();
            return(boolRead);
        }
        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            
            Rss.RssItem rssItem = CreateAndInitRssItem(page, langToRenderFor);

            FileLibraryDetailsData fileData = db.fetchDetailsData(page, placeholderDefinition.Identifier, langToRenderFor, true);
            rssItem.Description = fileData.Description;
            rssItem.Author = fileData.Author;
            string controlId = "fileLibrary_" + page.Id.ToString() + "_" + placeholderDefinition.Identifier.ToString() + "_" + langToRenderFor.shortCode + "_";
            rssItem.Guid = new Rss.RssGuid(controlId);

            return new Rss.RssItem[] { rssItem };
        }
Esempio n. 15
0
        } // RenderView

        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            Rss.RssItem rssItem = base.CreateAndInitRssItem(page, langToRenderFor);
            string      content = page.renderPlaceholderToString(placeholderDefinition, langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters);

            if (content.Trim() != "")
            {
                rssItem.Description = content;

                return(new Rss.RssItem[] { rssItem });
            }
            return(new Rss.RssItem[0]);
        }
        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            EventCalendarDb db = new EventCalendarDb();

            EventCalendarDb.EventCalendarAggregatorData entity = db.fetchAggregatorData(page, placeholderDefinition.Identifier, langToRenderFor, true);

            DateTime start = DateTime.MinValue;
            DateTime end   = DateTime.MinValue;

            switch (entity.ViewMode)
            {
            case CalendarViewMode.Agenda_Day:
                start = DateTime.Now.Date;
                end   = DateTime.Now.AddDays(1);
                break;

            case CalendarViewMode.Agenda_Week:
                DayOfWeek firstDay = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
                start = DateTime.Now.Date;
                while (start.DayOfWeek != firstDay)
                {
                    start = start.AddDays(-1);
                }

                end = DateTime.Now.AddDays(7);
                break;

            case CalendarViewMode.Month:
                start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                end   = start.AddMonths(1);
                break;

            default:
                throw new ArgumentException("Error: invalid CalendarView mode");
                break;
            }

            List <Rss.RssItem> ret = new List <Rss.RssItem>();
            List <EventCalendarDb.EventCalendarDetailsData> list = new EventCalendarDb().fetchDetailsDataByRange(start, end, langToRenderFor);

            foreach (EventCalendarDb.EventCalendarDetailsData e in list)
            {
                CmsPage     detailPage = CmsContext.getPageById(e.PageId);
                Rss.RssItem rssItem    = CreateAndInitRssItem(detailPage, langToRenderFor);
                rssItem.PubDate_GMT = e.StartDateTime;
                rssItem.Author      = e.CreatedBy;
                rssItem.Description = detailPage.renderPlaceholdersToString("EventCalendarDetails", langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters);
                ret.Add(rssItem);
            }
            return(ret.ToArray());
        }
Esempio n. 17
0
        public Rss.RssItem InitRssItem(Rss.RssItem newRssItem, CmsPage page, CmsLanguage langToRenderFor)
        {
            string titlePrefix  = CmsConfig.getConfigValue("pageTitlePrefix", "");
            string titlePostfix = CmsConfig.getConfigValue("pageTitlePostfix", "");


            newRssItem.Title       = titlePrefix + page.getTitle(langToRenderFor) + titlePostfix;
            newRssItem.Link        = new Uri(page.getUrl(CmsUrlFormat.FullIncludingProtocolAndDomainName, langToRenderFor));
            newRssItem.Guid        = new Rss.RssGuid(newRssItem.Link);
            newRssItem.Author      = page.LastModifiedBy;
            newRssItem.PubDate_GMT = page.LastUpdatedDateTime.ToUniversalTime();

            return(newRssItem);
        }
Esempio n. 18
0
 private void QueueButton_Click(object sender, EventArgs e)
 {
     Rss.RssChannel channel = new Rss.RssChannel();
     channel.Description = languages.FormStrings.TemporaryDownloadChannel;
     feed.Channels.Add(channel);
     foreach (ListViewItem lvi in PostsListView.Items)
     {
         if (lvi.Checked == true)
         {
             Rss.RssItem item = (Rss.RssItem)lvi.Tag;
             channel.Items.Add(item);
         }
     }
 }
Esempio n. 19
0
        private void CatchUpAll()
        {
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                progressBar1.Maximum = Settings.Default.Feeds.Count;
                progressBar1.Minimum = 0;
                for (int y = 0; y < Settings.Default.Feeds.Count; y++)
                {
                    FeedItem feedItem = Settings.Default.Feeds[y];
                    if (feedItem.IsChecked)
                    {
                        progressBar1.Value = y;
                        Rss.RssFeed rssFeed = Utils.GetFeed(Settings.Default.Feeds[y]);
                        if (rssFeed != null)
                        {
                            int Start = Convert.ToInt32(numericValue.Value);

                            for (int q = Start; q < rssFeed.Channels[0].Items.Count; q++)
                            {
                                Rss.RssItem rssItem = rssFeed.Channels[0].Items[q];
                                if (Settings.Default.History[rssItem.GetHashCode().ToString()] == null)
                                {
                                    HistoryItem historyItem = new HistoryItem();
                                    historyItem.FeedGUID = feedItem.GUID;
                                    historyItem.Hashcode = rssItem.GetHashCode();
                                    historyItem.Title    = rssItem.Title;
                                    historyItem.ItemDate = rssItem.PubDate.ToString();
                                    historyItem.FeedUrl  = feedItem.Url;

                                    Settings.Default.History.Add(historyItem);
                                }
                            }
                        }
                    }
                }
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                log.Error("Error during catch-up", ex);
                Cursor.Current = Cursors.Default;

                MessageBox.Show(ex.Message, languages.FormStrings.ErrorDuringCatchUp, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }
Esempio n. 20
0
        public RSSPost[] getPosts()
        {
            Stack <Rss.RssItem> st   = new Stack <Rss.RssItem>();
            List <RSSPost>      list = new List <RSSPost>();

            foreach (Rss.RssItem rit in rss.Channels[0].Items)
            {
                st.Push(rit);
            }
            //int posts = 7;
            while (st.Count > 0)
            {
                Rss.RssItem rit = st.Pop();
                list.Add(new RSSPost(rit));
            }
            return(list.ToArray());
        }
Esempio n. 21
0
        } // RenderView

        public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor)
        {
            GlossaryDb db = new GlossaryDb();
            GlossaryPlaceholderData placeholderData = db.getGlossary(page, placeholderDefinition.Identifier, langToRenderFor, true);

            GlossaryPlaceholderData.GlossaryViewMode origViewMode = placeholderData.ViewMode;

            // -- gets all glossary items (regardless of the ViewMode)
            GlossaryData[] items = db.getGlossaryData(placeholderData.GlossaryId);

            // -- each glossary item gets its own rssItem
            List <Rss.RssItem> ret = new List <Rss.RssItem>();

            foreach (GlossaryData glData in items)
            {
                Rss.RssItem rssItem = new Rss.RssItem();
                rssItem = base.InitRssItem(rssItem, page, langToRenderFor);

                rssItem.Description = glData.description;
                // -- setup the proper link
                switch (placeholderData.ViewMode)
                {
                case GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter:

                    Dictionary <string, string> urlParams = new Dictionary <string, string>();
                    urlParams.Add("l", glData.word.ToUpper()[0].ToString());
                    rssItem.Link = new Uri(page.getUrl(urlParams, langToRenderFor));
                    break;

                case GlossaryPlaceholderData.GlossaryViewMode.SinglePageWithJumpList:
                    // nothing to do
                    break;

                default:
                    throw new Exception("Error: invalid GlossaryViewMode");
                } // switch
            }
            return(ret.ToArray());
        }
Esempio n. 22
0
        public RSSPost(Rss.RssItem rssitem)
        {
            if (rssitem.Enclosure != null)
            {
                MediaItemUrl = rssitem.Enclosure.Url.ToString();
                MediaType    = rssitem.Enclosure.Type;
                MediaLenght  = rssitem.Enclosure.Length;
            }

            Title   = rssitem.Title;
            Content = rssitem.Description;
            User    = rssitem.Author;
            Date    = rssitem.PubDate;
            if (rssitem.Comments != null & rssitem.Comments.Length > 0)
            {
                Comments = new List <string>(rssitem.Comments.Split(new string[] { "#" }, StringSplitOptions.RemoveEmptyEntries));
            }
            else
            {
                Comments = new List <string>();
            }
        }
Esempio n. 23
0
        public RSSEvents(string filepath, string channeldescription, string webmaster, string channeltitle, string httplink)
        {
            //rssfile = filerelpath;
            string tmprssfile = rssfile;

            rssfile = filepath;
            rss     = new Rss.RssFeed();
            if (!System.IO.File.Exists(rssfile))
            {
                //System.IO.StreamWriter str = new System.IO.StreamWriter(rssfile, false);
                //str.Close();
                if (rss.Channels.Count == 0)
                {
                    Rss.RssFeed    rs  = new Rss.RssFeed();
                    Rss.RssChannel ch  = new Rss.RssChannel();
                    string         cat = "";
                    //if (rssfile.Contains(@"\Components\")) { cat = "Componente forte"; }
                    //if (rssfile.Contains(@"\Environments\")) { cat = "Entorno forte"; }
                    ch.Description = channeldescription;
                    ch.Title       = channeltitle;
                    ch.WebMaster   = webmaster;
                    Rss.RssItem rt = new Rss.RssItem();
                    rt.Author      = webmaster;
                    rt.Description = "Seccion de eventos, canal " + channeltitle + "." + cat;
                    rt.PubDate     = DateTime.Now;
                    rt.Title       = "Eventos para el canal " + channeltitle;

                    ch.Items.Add(rt);
                    ch.LastBuildDate = DateTime.Now;
                    ch.PubDate       = DateTime.Now;
                    ch.Link          = new Uri(httplink);
                    rss.Channels.Add(ch);
                    rss.Write(rssfile);
                }
            }
            rss = Rss.RssFeed.Read(rssfile);
        }
Esempio n. 24
0
        public RSSEvents(string filepath, string channeldescription, string webmaster, string channeltitle, string httplink)
        {
            //rssfile = filerelpath;
            string tmprssfile = rssfile;
            rssfile = filepath;
            rss = new Rss.RssFeed();
            if (!System.IO.File.Exists(rssfile))
            {
                //System.IO.StreamWriter str = new System.IO.StreamWriter(rssfile, false);
                //str.Close();
                if (rss.Channels.Count == 0)
                {
                    Rss.RssFeed rs = new Rss.RssFeed();
                    Rss.RssChannel ch = new Rss.RssChannel();
                    string cat = "";
                    //if (rssfile.Contains(@"\Components\")) { cat = "Componente forte"; }
                    //if (rssfile.Contains(@"\Environments\")) { cat = "Entorno forte"; }
                    ch.Description = channeldescription;
                    ch.Title = channeltitle;
                    ch.WebMaster = webmaster;
                    Rss.RssItem rt = new Rss.RssItem();
                    rt.Author = webmaster;
                    rt.Description = "Seccion de eventos, canal " + channeltitle + "." + cat;
                    rt.PubDate = DateTime.Now;
                    rt.Title = "Eventos para el canal " + channeltitle;

                    ch.Items.Add(rt);
                    ch.LastBuildDate = DateTime.Now;
                    ch.PubDate = DateTime.Now;
                    ch.Link = new Uri(httplink);
                    rss.Channels.Add(ch);
                    rss.Write(rssfile);
                }
            }
            rss = Rss.RssFeed.Read(rssfile);
        }
Esempio n. 25
0
        public RSSEvents(string channelDescription, string channelTittle, string webmaster)
        {
            rss = new Rss.RssFeed();
            if (rss.Channels.Count == 0)
            {
                Rss.RssFeed rs = new Rss.RssFeed();
                Rss.RssChannel ch = new Rss.RssChannel();
                string cat = "";
                //if (rssfile.Contains(@"\Components\")) { cat = "Componente forte"; }
                //if (rssfile.Contains(@"\Environments\")) { cat = "Entorno forte"; }
                ch.Description = channelDescription;
                ch.Title = channelTittle;
                ch.WebMaster = webmaster;
                Rss.RssItem rt = new Rss.RssItem();
                rt.Author = webmaster;
                rt.Description = channelDescription;
                rt.PubDate = DateTime.Now;
                rt.Title = channelTittle;

                ch.Items.Add(rt);
                ch.LastBuildDate = DateTime.Now;
                ch.PubDate = DateTime.Now;
                //ch.Link = new Uri(httplink);
                rss.Channels.Add(ch);

            }
        }
Esempio n. 26
0
 public void addNewPostNoSaveFile(string title, string usuario, string entry)
 {
     Rss.RssItem it = new Rss.RssItem();
     it.Title = title;
     it.Author = usuario;
     it.Description = entry;
     it.PubDate = DateTime.Now;
     rss.Channels[0].Items.Add(it);
     //rss.Write(this.rssfile);
 }
Esempio n. 27
0
        private void RenderRss(RssGroup rssGroup)
        {
            Response.ContentType     = "application/xml";
            Response.ContentEncoding = System.Text.Encoding.UTF8;

            Hashtable moduleSettings = ModuleSettings.GetModuleSettings(rssGroup.ModuleId);

            rssGroup.MaximumDays = WebUtils.ParseInt32FromHashtable(
                moduleSettings, "RSSFeedMaxDaysOldSetting", 90);

            int entriesLimit = WebUtils.ParseInt32FromHashtable(
                moduleSettings, "RSSFeedMaxPostsSetting", 90);

            int entryCount = 0;

            Rss.RssChannel channel = new Rss.RssChannel();
            string         baseUrl = Request.Url.ToString().Replace("RSS.aspx", "Topic.aspx");

            using (IDataReader posts = rssGroup.GetPostsForRss())
            {
                while ((posts.Read()) && (entryCount <= entriesLimit))
                {
                    Rss.RssItem item = new Rss.RssItem();

                    item.Title       = posts["Subject"].ToString();
                    item.Description = SiteUtils.ChangeRelativeUrlsToFullyQuailifiedUrls(navigationSiteRoot, imageSiteRoot, posts["Post"].ToString());
                    item.PubDate     = Convert.ToDateTime(posts["PostDate"]);

                    string target = baseUrl;

                    if (target.IndexOf("&topic=") < 0 && target.IndexOf("?topic=") < 0)
                    {
                        if (target.IndexOf("?") < 0)
                        {
                            target += "?topic=" + posts["TopicID"].ToString() + "#post" + posts["PostID"].ToString();
                        }
                        else
                        {
                            target += "&topic=" + posts["TopicID"].ToString() + "#post" + posts["PostID"].ToString();
                        }
                    }
                    item.Link = new System.Uri(target);

                    item.Author = posts["StartedBy"].ToString();

                    channel.Items.Add(item);
                    entryCount += 1;
                }
            }

            object value = GetModule();
            Module m;

            channel.LastBuildDate = channel.Items.LatestPubDate();
            channel.Link          = new System.Uri(groupUrl);

            if (value != null)
            {
                m = (Module)value;

                channel.Title       = m.ModuleTitle;
                channel.Description = m.ModuleTitle;
            }
            else
            {
                channel.Title       = siteSettings.SiteName;
                channel.Description = siteSettings.SiteName;
            }

            if (channel.Items.Count == 0)
            {
                Rss.RssItem item = new Rss.RssItem();

                item.Title       = "No Items Found";
                item.Description = "No items found";
                item.PubDate     = DateTime.UtcNow;

                item.Link = new System.Uri(navigationSiteRoot);

                item.Author = "system";

                channel.Items.Add(item);
            }


            Rss.RssFeed rss = new Rss.RssFeed();
            rss.BaseUrl = cssBaseUrl;

            rss.Encoding = System.Text.Encoding.UTF8;
            rss.Channels.Add(channel);
            rss.Write(Response.OutputStream);
            //Response.End();
        }
            public static FileAggItem FromRSSItems(Rss.RssItem sourceDetails)
            {
                string PageDisplayURL  = sourceDetails.Link.ToString();
                string Title           = sourceDetails.Title;
                string FileDownloadURL = PageDisplayURL;            // parse it out
                string Description     = sourceDetails.Description; // parse it out
                string CategoryName    = "";                        // parse it out

                if (sourceDetails.Categories.Count > 0)
                {
                    CategoryName = sourceDetails.Categories[(sourceDetails.Categories.Count - 1)].Name; // use the last category
                }
                DateTime lastModified = sourceDetails.PubDate_GMT;                                      // parse it out

                bool isSWISHFeed     = false;
                int  entryStartIndex = Description.IndexOf("&lt;entry&gt;");
                int  entryEndIndex   = Description.LastIndexOf("&lt;/entry&gt;");

                if (entryStartIndex >= 0 && entryEndIndex > entryStartIndex)
                {
                    isSWISHFeed = true;
                }

                if (isSWISHFeed)
                {
                    try
                    {
                        // parse the FileDownloadURL, Description, CategoryName and lastModified from the description
                        int    parseLength = (entryEndIndex + "&lt;/entry&gt;".Length) - entryStartIndex;
                        string encodedXml  = Description.Substring(entryStartIndex, parseLength).Trim();
                        string decodedXml  = HttpUtility.HtmlDecode(encodedXml);
                        System.IO.StringReader xmlStream = new System.IO.StringReader(decodedXml);

                        /*
                         * XmlReaderSettings settings = new XmlReaderSettings();
                         * settings.ConformanceLevel = ConformanceLevel.Auto;
                         * settings.IgnoreComments = true;
                         * settings.IgnoreProcessingInstructions = true;
                         */
                        XmlTextReader xmlReader = new XmlTextReader(xmlStream);

                        xmlReader.Namespaces         = false; // critical: ignore namespaces. Otherwise parts of the document will not be parsed.
                        xmlReader.WhitespaceHandling = WhitespaceHandling.None;

                        while (xmlReader.Read())
                        {
                            if (xmlReader.NodeType == XmlNodeType.Element || xmlReader.NodeType == XmlNodeType.EndElement)
                            {
                                if (xmlReader.Name == "summary")
                                {
                                    Description = xmlReader.ReadElementContentAsString();
                                }
                                else if (xmlReader.Name == "dc:subject")
                                {
                                    CategoryName = xmlReader.ReadElementContentAsString();
                                }
                                else if (xmlReader.Name == "updated")
                                {
                                    try
                                    {
                                        lastModified = xmlReader.ReadElementContentAsDateTime();
                                    }
                                    catch (FormatException fe)
                                    { }
                                }
                            }

                            // -- for some reason the link tag is parsed right-after the summary tag
                            if (xmlReader.Name == "link")
                            {
                                xmlReader.MoveToAttribute("href");
                                if (xmlReader.Value != "")
                                {
                                    FileDownloadURL = xmlReader.Value;
                                }
                            }
                        } // while
                    }
                    catch (Exception ex)
                    { }
                }

                return(new FileAggItem(PageDisplayURL, FileDownloadURL, Title, Description, CategoryName, lastModified));
            }