Skiss på nytt Frisim-utseende

Tanken är att Frisim ska vara under ständig utveckling. Normalt brukar jag göra justeringar direkt i ”produktionsversionen”, vilket gör att ändringar syns direkt. Tyvärr innebär sådana ändringar att det kan uppstå fel – fel som jag inte märker förrän långt senare. I värsta fall innebär kan det innebära att allt nyhetsinsamlande avstannar, vilket får tråkiga konsekvenser. Därför utvecklar jag numera på en separat dator. Det medför att utvecklingen sker i trappsteg. Nu finns i alla fall en ”helt ny” version på utvecklingsdatorn. Inget i den gamla versionen har försvunnit, men det har kommit till ett par funktioner. Bland annat så används den funktion för innehållsbaserde nyhetsrekommendationer som jag skrivit om tidigare. Indexet använder sig numera av ”stemming”, först och främst för att få rekommendationerna att fungera bättre. Utvecklingsversionen har också ett nytt utseende som ser ut såhär:


nya frisim

Det senaste som programmerats är front-end-kod (i PHP) för att detektera dubletter. Det används just nu för att inte rekommendera samma nyhet flera gånger. Såhär fungerar den:


class news {
  var $url="";
  var $title="";
  var $time="";
  var $source="";
  var $duplicates=0;
}
class store {
  protected $list = array();
  function add(news $item){
    array_push($this->list,$item);
  }
 
  function displayPretty(){
    print_r($this->list);
  }
 
  function isUnique($title){
    $items=count($this->list);
    $is=true;
    for($i=0;$i< $items;$i++){
      if($title == $this->list[$i]->title){
        $is=false;
      }
    }
    return $is;
  }
  function mergeNonuniques(){
    $items=count($this->list);
    for($i=0;$i< $items;$i++){
      $j=$i+1;
      while($j<$items){
        if($this->list[$i]->title == $this->list[$j]->title){
          // Remove duplicate (j) and count as duplicate
          $removed = array_splice($this->list,$j,1);
          $this->list[$i]->duplicates++;
          $items--;
        }else{
          $j++;
        }
      }
    }
  }
}

Comments are closed.