Difference between revisions of "Template:Mainpage-rssfeeds"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
m
(RSS-Feed Mediawiki extension)
Line 7: Line 7:
 
http://meta.wikimedia.org/wiki/GISWiki/RSS
 
http://meta.wikimedia.org/wiki/GISWiki/RSS
  
 +
__NOTOC__
 
==RSS-Feed Mediawiki extension==
 
==RSS-Feed Mediawiki extension==
 +
 +
* original by mutante 25.03.2005
 +
* extended by Duesentrieb 30.04.2005
 +
* extended by Rdb78 07.07.2005
 +
* extended by Mafs  10.07.2005, 24.07.2005
 +
* extended by User:Arcy  07.09.2005
 +
* Updated for MediaWiki 1.6 by User:piku 13.06.2006
 +
* Update for Wikicode output, by User:cogdog 14.jul.2006
 +
 +
===Requires:===
 +
* magpie rss parser http://magpierss.sourceforge.net/
 +
* iconv http://www.gnu.org/software/libiconv/, see also http://www.php.net/iconv
 +
 +
===Installation:===
 +
* put this file (rss.php) into the extension directory of your mediawiki installation
 +
* add the following to the end of LocalSettings.php: include("extensions/rss.php");
 +
* make sure magpie can be found by PHP.
 +
 +
===Usage:===
 +
Use one section between <nowiki><rss>-tags for each feed. The rss section may contain parameters
 +
separated by a pipe ("|"), just like links and templates. These parameters are supported:
 +
</nowiki>
 +
 +
* charset=...            The charset used by the feed. iconv is used to convert this.
 +
* short                  Do not show the description text for each news item.
 +
* max=x                  Shows x most recent headlines.
 +
* highlight= term1 term2  The terms separated by a space are highlighted.
 +
* filter= term1 term2    Show only rss items containing at least one of the terms.
 +
* reverse                display the rss items in reverse order.
 +
* title=x                display an alternative title instead of chanel name.
 +
* title = none            dont display any title.
 +
 +
===Example:===
 +
<nowiki><rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss></nowiki>
 +
 +
<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
 +
 
<pre><nowiki>
 
<pre><nowiki>
  

Revision as of 16:20, 29 July 2006

UNIQ5db8a7df67073a54-rss-00000000-QINU UNIQ5db8a7df67073a54-rss-00000001-QINU

GISWiki/RSS

Uses an extension from: http://meta.wikimedia.org/wiki/GISWiki/RSS


RSS-Feed Mediawiki extension

  • original by mutante 25.03.2005
  • extended by Duesentrieb 30.04.2005
  • extended by Rdb78 07.07.2005
  • extended by Mafs 10.07.2005, 24.07.2005
  • extended by User:Arcy 07.09.2005
  • Updated for MediaWiki 1.6 by User:piku 13.06.2006
  • Update for Wikicode output, by User:cogdog 14.jul.2006

Requires:

Installation:

  • put this file (rss.php) into the extension directory of your mediawiki installation
  • add the following to the end of LocalSettings.php: include("extensions/rss.php");
  • make sure magpie can be found by PHP.

Usage:

Use one section between <rss>-tags for each feed. The rss section may contain parameters separated by a pipe ("|"), just like links and templates. These parameters are supported:

  • charset=... The charset used by the feed. iconv is used to convert this.
  • short Do not show the description text for each news item.
  • max=x Shows x most recent headlines.
  • highlight= term1 term2 The terms separated by a space are highlighted.
  • filter= term1 term2 Show only rss items containing at least one of the terms.
  • reverse display the rss items in reverse order.
  • title=x display an alternative title instead of chanel name.
  • title = none dont display any title.

Example:

<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>

Behind Apple's Sapphire Screen Debacle

Thu, 27 Nov 2014 22:09:00

Frankie70 (803801) writes Apple invested more than $1 billion in an effort to make sapphire one of iPhone 6's selling point. But the iPhone 6 was released without the sapphire screen. GT Advanced Technologies, the small company chosen to supply Apple with enormous quantities of cheap sapphire, declared bankruptcy a month later. Recent documents from GT's bankruptcy proceedings, and conversations with people familiar with operations at Apple and GT, provide several clues as to what went wrong. GT said that to save costs, Apple decided not to install backup power supplies, and multiple outages ruined whole batches of sapphire. The terms Apple negotiated committed GT to supplying a huge amount of sapphire, but put Apple under no obligation to buy it. In its bankruptcy documents, GT would later accuse Apple of using "bait-and-switch" tactics, and said the terms of the deal were "onerous and massively one-sided."

Share on Google+

Read more of this story at Slashdot.








Syrian Electronic Army Takes Credit For News Site Hacking

Thu, 27 Nov 2014 21:08:00

New submitter ddtmm writes The Syrian Electronic Army is claiming responsibility for the hacking of multiple news websites, including CBC News. Some users trying to access the CBC website reported seeing a pop-up message reading: "You've been hacked by the Syrian Electronic Army (SEA)." It appears the hack targeted a network used by many news organizations and businesses. A tweet from an account appearing to belong to the Syrian Electronic Army suggested the attacks were meant to coincide with the U.S. Thanksgiving on Thursday. The group claimed to have used the domain Gigya.com, a company that offers businesses a customer identity management platform, to hack into other sites via GoDaddy, its domain registrar. Gigya is "trusted by more than 700 leading brands," according to its website. The hacker or hackers redirected sites to the Syrian Electronic Army image that users saw. Gigya's operations team released a statement Thursday morning saying that it identified an issue with its domai registrar at 6:45 a.m. ET. The breach "resulted in the redirect of the Gigya.com domain for a subset of users," the company said. Among the websites known to be hacked so far are New York Times, Chicago Tribune, CNBC, PC World, Forbes, The Telegraph, Walmart and Facebook.

Share on Google+

Read more of this story at Slashdot.








Apple and Amazon Launch Black Friday Price War

Thu, 27 Nov 2014 20:10:00

An anonymous reader writes Forbes magazine points out that tablet computers are receiving some of the biggest discounts for this year's day-after-Thanksgiving sales. "With slowing growth in the tablet market and an increasing array of choices, some of the strongest bargains will come in that sector," they report, noting that Target is giving away a $140 gift card with purcahses of an iPad Air 2 (and a $100 gift card with the iPad Mini or first-generation iPad Air). But Amazon has already launched a counter-strike, posting big discounts online on Thanksgiving day for their entire line of Kindles, including a black-and-white Kindle for just $49, and their 6-inch color/high-definition HD6 for just $79.

Share on Google+

Read more of this story at Slashdot.








Riecoin Breaks World Record For Largest Prime Sextuplet, Twice

Thu, 27 Nov 2014 19:12:00

An anonymous reader writes Last week, Riecoin – a project that doubles as decentralized virtual currency and a distributed computing system — quietly broke the record for the largest prime number sextuplet. This happened on November 17, 2014 at 19:50 GMT and the calculation took only 70 minutes using the massive distributed computing power of its network. This week the feat was outdone and the project beat its own record on November 24, 2014 at 20:28 GMT achieving numbers 654 digits long, 21 more than its previous record.

Share on Google+

Read more of this story at Slashdot.








Edsac Goes Live, At UK's National Museum of Computing

Thu, 27 Nov 2014 18:15:00

Rambo Tribble (1273454) writes "Britain's National Museum of Computing has flipped the switch on the venerable Edsac computer. The arduous task of reconstructing the 1949 behemoth, fraught with little in terms of the original hardware or documentation, was brought to fruition on Wednesday. As project lead, Andrew Herbert, is quoted as saying, "We face the same challenges as those remarkable pioneers who succeeded in building a machine that transformed computing." A remarkably shaky video of the event, replete with excellent views of the floor at the videographer's feet, can be found here."

Share on Google+

Read more of this story at Slashdot.









<?php
# RSS-Feed Mediawiki extension
# 
# original by mutante 25.03.2005
# extended by Duesentrieb 30.04.2005
# extended by Rdb78 07.07.2005
# extended by Mafs  10.07.2005, 24.07.2005
# extended by User:Arcy  07.09.2005
# Updated for MediaWiki 1.6 by User:piku 13.06.2006
# Update for Wikicode output, by User:cogdog 14.jul.2006
#
# Requires: 
#  * magpie rss parser <http://magpierss.sourceforge.net/>
#  * iconv <http://www.gnu.org/software/libiconv/>, see also <http://www.php.net/iconv>
#
# Installation:
#  * put this file (rss.php) into the extension directory of your mediawiki installation 
#  * add the following to the end of LocalSettings.php: include("extensions/rss.php");
#  * make sure magpie can be found by PHP.
#
# Usage:
#  Use one section between <rss>-tags for each feed. The rss section may contain parameters
#  separated by a pipe ("|"), just like links and templates. These parameters are supported:
#
#    * charset=...             The charset used by the feed. iconv is used to convert this.
#    * short                   Do not show the description text for each news item.
#    * max=x                   Shows x most recent headlines.
#    * highlight= term1 term2  The terms separated by a space are highlighted.
#    * filter= term1 term2     Show only rss items containing at least one of the terms.
#    * reverse                 display the rss items in reverse order.
#    * title=x                 display an alternative title instead of chanel name.
#    * title = none            dont display any title.
#
# Example: 
#    <rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
#

#change this according to your magpie installation!
require_once('rss_fetch.inc'); 

#install extension hook
$wgExtensionFunctions[] = "wfRssExtension"; 

#extension hook callback function
function wfRssExtension() { 
  global $wgParser;

  #install parser hook for <rss> tags
  $wgParser->setHook( "rss", "renderRss" );
}

#parser hook callback function
function renderRss($input, $argv, $parser = null) {
  if (!$parser) $parser =& $GLOBALS['wgParser'];
  global $wgOutputEncoding;

  $DefaultEncoding = "ISO-8859-1";
  $DisableCache = true;

  # $input = mysql_escape_string($input);

  if (!$input) return ""; #if <rss>-section is empty, return nothing

  #parse fields in rss-section
  $fields= explode("|",$input);
  $url= @$fields[0];

  $args= array();
  for ($i=1; $i<sizeof($fields); $i++) {
    $f= $fields[$i];

    if (strpos($f,"=")===False) $args[strtolower(trim($f))]= False;
    else {
      list($k,$v)= explode("=",$f,2);
      if (trim($v)==False) $args[strtolower(trim($k))] = False; 
      else $args[strtolower(trim($k))]= trim($v);
    }
  }

  #get charset from argument-array    
  $charset= @$args["charset"];
  if (!$charset) $charset= $DefaultEncoding;

  #get max number of headlines from argument-array
  $maxheads = @$args["max"];
  $headcnt = 0;

  #get short-flag from argument-array
  #if short is set, no description text is printed
  if (isset($args["short"])) $short = True; else $short = False;

  #get reverse-flag from argument-array
  if (isset($args["reverse"])) $reverse = True; else $reverse = False;

  #get highlight terms from argument-array    
  $rssHighlight= @$args["highlight"];
  $rssHighlight= str_replace("  "," ", $rssHighlight);
  $rssHighlight= explode(" ", trim($rssHighlight));

  #get filter terms from argument-array    
  $rssFilter= @$args["filter"];
  $rssFilter= str_replace("  "," ", $rssFilter);
  $rssFilter= explode(" ", trim($rssFilter));    

  #fetch rss. may be cached locally.
  #Refer to the documentation of magpie for details.
  $rss = @fetch_rss($url);


  #check for errors.
  if ($rss->ERROR) {
     # return "Feed error"; #localize...
      #return "<div>Failed to load RSS feed from $url: ".$rss->ERROR."</div>"; #localize...
  }

  if (!is_array($rss->items)) {
     # return "Feed error"; #localize...
      #return "<div>Failed to load RSS feed from $url!</div>"; #localize...
  }

  #Bild title line    
  #get title from argument-array    
  
  $rssTitle= @$args["title"];
  $rssTitle= trim($rssTitle);

  if ($rssTitle !=='none') {
    if ($rssTitle=='') {
        $title= iconv($charset,$wgOutputEncoding,$rss->channel['title']);
        if ($rss->channel['link']) $title= "[".$rss->channel['link']." $title]";
        $output = "=== $title ===\n";
    }
    else
    {
      $title= "[".$rss->channel['link']." $rssTitle]";
      $output="=== $title ===\n";
    }
  } else {
      $output="\n\n\n";
  }
  
  if ($reverse) $rss->items = array_reverse($rss->items);

  $description = False; 
  foreach ($rss->items as $item) {
      if ($item['description']) {$description = True; break;}
  }

  #Bild items
  if (!$short and $description) { #full item list

    $output.="";
    foreach ($rss->items as $item) {

      $d_text = true;
      $d_title = true;

      $href = trim(iconv($charset,$wgOutputEncoding,$item['link']));
      $title = trim(iconv($charset,$wgOutputEncoding,$item['title']));

      $d_title = wfRssFilter ($title, $rssFilter);
      $title= wfRssHighlight($title, $rssHighlight);

      #bild description text if desired
      if ($item["description"]) {
        $text= trim(iconv($charset,$wgOutputEncoding,$item['description']));

        #avoid pre-tags
        $text= str_replace("\r"," ",$text);
        $text= str_replace("\n"," ",$text);
        $text= str_replace("\t"," ",$text);

        $d_text = wfRssFilter ($text, $rssFilter);
        $text= wfRssHighlight($text, $rssHighlight);

        $display = $d_text or $d_title;

      }
        else   {
          $text = "";
          $display = $d_title;
        }       

      if ($display) {
        $output.="* [$href $title]";
        if ($text) $output.="<br>$text";
        $output .= "\n";
      }

    #Cut off output when maxheads is reached:
    if (++$headcnt == $maxheads)  break;

    }
    # $output.="</dl>";
  }
  else { #short item list
   #  $output.="<ul>";
    foreach ($rss->items as $item) {
      $href = trim(iconv($charset,$wgOutputEncoding,$item['link']));
      $title = trim(iconv($charset,$wgOutputEncoding,$item['title']));

        $d_title = wfRssFilter ($title, $rssFilter);
        $title= wfRssHighlight($title, $rssHighlight);

        if ($d_title ) $output.="* [$href $title]\n";

      #Cut off output when maxheads is reached:
      if (++$headcnt == $maxheads)  break;
    }
    # $output.="</ul>";
  }


  if ($DisableCache) {

    global $wgVersion;

    # Do not cache this wiki page.
    # for details see http://public.kitware.com/Wiki/User:Barre/MediaWiki/Extensions
    global $wgTitle, $wgDBprefix;
    $ts = mktime();
    $now = gmdate("YmdHis", $ts + 120);
    $ns = $wgTitle->getNamespace();
    $ti = wfStrencode($wgTitle->getDBkey());

    $version = preg_replace("/^([1-9]).([1-9]).*/", "\\1\\2", $wgVersion);
    if ($version>14) $sql = "UPDATE $wgDBprefix"."page SET page_touched='$now' WHERE page_namespace=$ns AND page_title='$ti'";
    else             $sql = "UPDATE $wgDBprefix"."cur SET cur_touched='$now' WHERE cur_namespace=$ns AND cur_title='$ti'";

    wfQuery($sql, DB_WRITE, "");
  }

  $out = $parser->parse ($output, $parser->mTitle,$parser->mOptions, true, false);
  return $out->getText();
}


function wfRssFilter ($text, $rssFilter) {

  $display = true;

  if (is_array($rssFilter)) {
    foreach($rssFilter as $term) {

      if ($term) {
        $display = false;
        if (preg_match("|$term|i", $text, $a))  {  $display = true; return $display; }
      }
    if ($display) break;
    }
  }
  return $display;
}


function wfRssHighlight($text, $rssHighlight) {

  $i=0;
  $starttag = "v8x5u3t3u8h";
  $endtag   = "q8n4f6n4n4x";

  $color[]="coral";
  $color[]="greenyellow";
  $color[]="lightskyblue";
  $color[]="gold";
  $color[]="violet";

  $count_color = count($color);

  if (is_array($rssHighlight)) {
    foreach($rssHighlight as $term) {
      if ($term) {
        $text = preg_replace("|\b(\w*?".$term."\w*?)\b|i", "$starttag"."_".$i."\\1$endtag", $text);
        $i++;
        if ($i == $count_color) $i=0;
        }
      }
    }
  # to avoid trouble should someone wants to highlight the terms "span", "style", ...
  for ($i=0; $i<5; $i++) {
    $text = preg_replace("|$starttag"."_".$i."|", "<span style=\"background-color:".$color[$i]."; font-weight: bold;\">", $text);
    $text = preg_replace("|$endtag|", "</span>", $text);
    }

  return $text;
}

?>