Difference between revisions of "Template:Mainpage-rssfeeds"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
(Usage:)
Line 32: Line 32:
 
{|
 
{|
 
|-
 
|-
||charset=...   ||         The charset used by the feed. iconv is used to convert this.
+
|| <tt>charset = ...</tt>            ||The charset used by the feed. iconv is used to convert this.
 
|-
 
|-
|| short         ||         Do not show the description text for each news item.
+
|| <tt>short</tt>                  ||Do not show the description text for each news item.
 
|-
 
|-
|| max=x         ||         Shows x most recent headlines.
+
|| <tt>max = x</tt>                  ||Shows x most recent headlines.
 
|-
 
|-
|| highlight= term1 term2 || The terms separated by a space are highlighted.
+
|| <tt>highlight = term1 term2</tt>  ||The terms separated by a space are highlighted.
 
|-
 
|-
|| filter= term1 term2    ||Show only rss items containing at least one of the terms.
+
|| <tt>filter = term1 term2</tt>     ||Show only rss items containing at least one of the terms.
 
|-
 
|-
|| reverse                ||display the rss items in reverse order.
+
|| <tt>reverse</tt>                 ||display the rss items in reverse order.
 
|-
 
|-
|| title=x                ||display an alternative title instead of chanel name.
+
|| <tt>title = x</tt>                 ||display an alternative title instead of chanel name.
 
|-
 
|-
|| title = none            ||dont display any title.
+
|| <tt>title = none</tt>           ||dont display any title.
 
|}
 
|}
  
 
===Example:===  
 
===Example:===  
<nowiki><rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss></nowiki>
+
<tt><nowiki><rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss></nowiki></tt>
  
 
<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
 
<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
  
<pre><nowiki>
 
  
 
===rss.php===  
 
===rss.php===  
 
+
<pre><nowiki>
 
<?php
 
<?php
 
# RSS-Feed Mediawiki extension
 
# RSS-Feed Mediawiki extension

Revision as of 16:31, 29 July 2006

UNIQ9d451be0dbb16716-rss-00000000-QINU UNIQ9d451be0dbb16716-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>

Canada's Prime Minister Justin Trudeau Makes Game For Third Annual Hour of Code

Wed, 07 Dec 2016 10:00:00

Eloking writes: Canadian Prime Minister Justin Trudeau's Twitter account lit up today with a message all too familiar to many indie devs: Mr. Trudeau has made a video game, and he'd like everyone to play it. It was a cute bit of promotion for Hour of Code, the computer science education event masterminded every year by the Code.org nonprofit. While the Hour of Code websites hosts one-hour tutorials (in 45 languages) for coding all sorts of simple applications, game developers may appreciate that the lion's share appears to be game projects, like the one Trudeau modified into a sort of hockey-themed Breakout variant.

Share on Google+


Read more of this story at Slashdot.

NASA Awards $127 Million Contract For Refueling Mission Spacecraft

Wed, 07 Dec 2016 07:00:00

Satellites cost millions of dollars to be launched into space and there's no guarantee that they will work without electrical or mechanical problems once in orbit. NASA has recently announced that it will award a $127 million contract to a company that aims to use a robotic spacecraft to fix satellites in space, thus potentially saving millions of dollars in the long-run by fixing satellites that would otherwise be "expensive e-waste." Gizmodo reports: NASA has just announced that it will award a $127 million contract to the California-based satellite company Space Systems/Loral for Restore-L, a robotic spacecraft capable of grasping, refueling and relocating a satellite in low Earth orbit, in addition to testing technologies for future missions. SSL has three years to build the bot, which is projected to launch in 2020. Without the ability to refuel, a satellite's lifespan is restricted by the amount of propellant engineers can pack in its tank at launch. That lifespan can be cut even shorter should the spacecraft encounter any electrical or mechanical problems on orbit. As more and more satellites reach the end of their operational lifespans, government agencies and private companies have been working to remedy this problem by developing robots that can give satellites a tune-up in zero-gravity. DARPA, for instance, recently launched a program aimed at designing robots capable of servicing satellites at the hard-to-reach but highly-desirable perch of geosynchronous orbit, 22,000 miles above Earth. NASA's Satellite Servicing Division, meanwhile, has a handful of on-orbit repair and refueling technology demonstrators in the works, including a robotic arm with the same range of motion as a human arm, a navigation system designed to help robots rendezvous with moving objects in space, and Restore-L, which combines these and other capabilities into a multi-purpose space mechanic. For now, Restore-L's primary goal is to refuel Landsat 7, a critical Earth-monitoring satellite operated by NASA and the U.S. Geological Survey. If successful, the spacecraft may be modified for all sorts of other useful tasks, from mopping up the ever-growing halo of space junk encircling our planet, to servicing exciting new science missions like the Asteroid Redirect Mission, which will grab a multi-ton boulder from the surface of an asteroid and tow it back to orbit around the Moon.

Share on Google+


Read more of this story at Slashdot.

'The Circle' Trailer Looks An Awful Lot Like Google

Wed, 07 Dec 2016 05:15:00

theodp writes: If you never got around to reading Dave Eggers' novel The Circle, the tale of a powerful tech company that bears a more-than-passing resemblance to Google (and has an Apple spaceship-like HQ) is coming to the big screen and the first trailer is out. The film has a release date of spring 2017, and stars Tom Hanks, Emma Watson and John Boyega. Remember, sharing is caring!

Share on Google+


Read more of this story at Slashdot.

Microsoft Researchers Offer Predictions For AI, Deep Learning

Wed, 07 Dec 2016 03:30:00

An anonymous reader quotes a report from The Verge: Microsoft polled 17 women working in its research organization about the technology advances they expect to see in 2017, as well as a decade later in 2027. The researchers' predictions touch on natural language processing, machine learning, agricultural software, and virtual reality, among other topics. For virtual reality, Mar Gonzalez Franco, a researcher in Microsoft's Redmond lab, believes body tracking will improve next year, and then over the next decade we'll have "rich multi-sensorial experiences that will be capable of producing hallucinations which blend or alter perceives reality." Haptic devices will simulate touch to further enhance the sensory experience. Meanwhile, Susan Dumais, a scientist and deputy managing director at the Redmond lab, believes deep learning will help improve web search results next year. In 2027, however, the search box will disappear, she says. It'll be replaced by search that's more "ubiquitous, embedded, and contextually sensitive." She says we're already seeing some of this in voice-controlled searches through mobile and smart home devices. We might eventually be able to look things up with either sound, images, or video. Plus, our searches will respond to "current location, content, entities, and activities" without us explicitly mentioning them, she says. Of course, it's worth noting that Microsoft has been losing the search box war to Google, so it isn't surprising that the company thinks search will die. With global warming as a looming threat, Asta Roseway, principal research designer, says by 2027 famers will use AI to maintain healthy crop yields, even with "climate change, drought, and disaster." Low-energy farming solutions, like vertical farming and aquaponics, will also be essential to keeping the food supply high, she says. You can view all 17 predictions here.

Share on Google+


Read more of this story at Slashdot.

Weather Channel To Breitbart: Stop Citing Us To Spread Climate Skepticism

Wed, 07 Dec 2016 02:25:00

Breitbart.com published an article last week that erroneously claims global warming is coming to an end, claiming "global land temperatures have plummeted by 1 degree Celsius since the middle of the year -- the biggest and steepest fall on record." The Weather Channel finds this report especially upsetting as it's not only inaccurate but it features a video from weather.com at the top of the article. The Weather Channel reports: Breitbart had the legal right to use this clip as part of a content-sharing agreement with another company, but there should be no assumption that The Weather Company endorses the article associated with it. The Breitbart article -- a prime example of cherry picking, or pulling a single item out of context to build a misleading case -- includes this statement: "The last three years may eventually come to be seen as the final death rattle of the global warming scare." In fact, thousands of researchers and scientific societies are in agreement that greenhouse gases produced by human activity are warming the planet's climate and will keep doing so. Along with its presence on the high-profile Breitbart site, the article drew even more attention after a link to it was retweeted by the U.S. House Committee on Science, Space, and Technology. The Breitbart article heavily references a piece that first appeared on U.K. Daily Mail's site. The Weather Channel went on to refute the Breitbart article's hypothesis: This number comes from one satellite-based estimate of temperatures above land areas in the lower atmosphere. Data from the other two groups that regularly publish satellite-based temperature estimates show smaller drops, more typical of the decline one would expect after a strong El Nino event. Temperatures over land give an incomplete picture of global-scale temperature. Most of the planet -- about 70 percent -- is covered by water, and the land surface warms and cools more quickly than the ocean. Land-plus-ocean data from the other two satellite groups, released after the Breitbart article, show that Earth's lower atmosphere actually set a record high in November 2016.

Share on Google+


Read more of this story at Slashdot.


rss.php

<?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;
}

?>