Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Filtrera feeds i PlanetPlanet?

Jag behöver hjälp med att filtrera feeds från PlanetPlanet. PlanetPlanet har en konfigurationsfil som heter planet.conf och som bla innehåller alla flödens URL:er, output-katalog, sökväg till templates mm. Jag vet att om man i PlanetPlanet lägger till "filter = keyword1" eller "filter = keyword1|keyword2" (utan citationstecken) så filtrerar PlanetPlanet på keyword1 i första fallet och på keyword1 och/eller keyword2 i andra fallet. Om jag istället filtrerar med "filter = keyword1 keyword2" så filtrerar PlanetPlanet på orden tillsammans i precis rätt ordning. Problemet är att jag vill filtrera på flera "uttryck" i stil med "filter = keyord1 keyword2 | keyword3 keyword 4", dvs jag vill filtrera på tex "Ubuntu Linux" och/eller "Open Source", inte bara "Ubuntu Linux" (keyword1 keyword2) eller "Ubuntu" och/eller "Linux" (keyword1|keyword2) utan ett uttryck som består av två ord och/eller ett annat uttryck som också består av två ord. Jag vill helt enkelt kunna filtrera på "meningar" som består av flera ord samtidigt, dvs kombinera "keyword1 keyword2" och "keyword1|keyword2" filtrering med keyword1 keyword2 och/eller keword3 keyword4.
PlanetPlanets dokumentation är minst sagt dålig och jag har sökt som en galning efter information mha Google. Nu vänder jag mig till er, hur filtrerar jag feedsen i PlanetPlanet på "uttryck" där varje uttryck består två eller flera ord?

En extra bonus hade varit om jag hade kunnat ställa in filtret till att filtrera på "title" resp "content" osv också. Idag filtrerar mitt filter (filter = keyword1|keyword2) på "title" och "content" på en och samma gång.

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

leochingkwakes bild

Den texten var inte alls rolig att läsa... tröttna redan i början... Alldeles för ihoptryckt.

ubots bild

Texten är detaljerad. Om man tar sig tid att läsa igenom texten förstår man precis vad jag vill göra och vad problemet är.

leochingkwakes bild

Om du tagit dig tid att göra texten läsbar så kanske du hade haft ett svar redan. Hört talas om stycken? Att göra texten luftig och läsbar. Din text är lite som att om en person hade pratat fort och i samma tonläge utan att andas eller ta en paus. Man orkar inte lyssna och personen har pratat i onödan.

ubots bild

Lägg tid på att läsa texten istället för att klaga. Om du hade läst texten och tagit till dig informationen så hade jag kanske redan haft ett svar på min fråga. För att göra det hela mer begripligt så sammanfattar jag informationen på en rad åt dig.

Jag vill filtrera feeds i PlanetPlanet. Jag vill filtrera feedsen på flera uttryck på en och samma gång, tex "Ubuntu Linux" och "Open Souce". Hur ska jag skriva i PlanetPlanets konfigurationsfil för att göra en sådan filtrering?

FoHs bild

Jag tycker det var en ovanligt informativ text faktiskt, om än kanske lite svårläst med alla keywords hit och dit (vilket förstås inte du kan göra så mycket åt). Leo var nog bara inte riktigt på humör skulle jag tro Smile

Hur som helst, jag har ingen som helst erfarenhet av PlanetPlanet, har faktiskt inte hört talas om det. Vad händer om du använder dig av citattecken kring nyckelorden? Det borde väl finnas något tecken som buntar samman nyckelord till hela uttryck, och vanligtvis är det ju citattecken som gör det. Med andra ord skulle exemplet se ut så här:

filter = "Ubuntu Linux" | "Open Source"

Andra tecken att använda sig av kan vara parenteser och &-tecken. Strecket betyder ju i regel bara "eller", och inte "och/eller" som du skriver. Andra förslag om de tecknen fungerar för att uppnå samma effekt:

filter = (Ubuntu Linux) | (Open Source)

filter = Ubuntu & Linux & Open & Source detta är ju dock inte riktigt samma resultat, kanske måste man kombinera de två om man använder parenteser:

filter = (Ubuntu & Linux) | (Open & Source)

Ja, jag vettekatten. Dåligt att det inte finns enkel, tillgänglig dokumentation.

fredentofts bild

eller == och/eller

För att ett eller ska bli uteslutande krävs att man slänger med antingen.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Argumentera aldrig med idioter. De drar bara ner dig till sin nivå och vinner på erfarenhet!

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

FoHs bild

Nu blir jag lite förvirrad. Ser jag ett "och" så kopplar jag det till AND-logiken, och inte som att "filtret innehåller keyword1 och keyword2" vilket förstås är sant rent språkligt. Jag ser helt enkelt ingen mening med att skriva "och/eller" om det är en ren OR-funktion. Det du pratar om är väl XOR? Pratar man om och-eller och uteslutande-eller på det här viset?

fredentofts bild

Precis, om man menar en ren "OR" så behöver man inte skriva och/eller eftersom och i det fallet innefattas i betydelsen av ordet eller. En uteslutande funktion ("XOR") får man om man skriver antingen A eller B.

Det vill säga:

"a = 1 eller b = 1" är sant om minst ett av a och b = 1
"antingen a = 1 eller b = 1" är sant om endast en av "variablerna" a och b är 1 men INTE om båda är det.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Argumentera aldrig med idioter. De drar bara ner dig till sin nivå och vinner på erfarenhet!

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

FoHs bild

Så "och/eller" är helt enkelt ett sätt att verkligen skilja det från XOR? Tror det är första gången jag kommer i kontakt med det sättet att skriva, kan inte komma ihåg att det var något som stod i litteraturen när jag pluggade lite datateknik. Man lär sig hela tiden Smile

Då var nog mitt svar till uboten tämligen överflödigt, om han kände till det sättet att skriva Smile

fredentofts bild

Skrev vi och/eller i våra tekniska rapporter när jag gick på Chalmers så blev det feta röda streck och en kommentar om att det där var felaktig svenska... Visst är språket under ständig utveckling men lite konservativ och pekpinne-pekande kan man ju ändå få vara ibland ;P.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Argumentera aldrig med idioter. De drar bara ner dig till sin nivå och vinner på erfarenhet!

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

ubots bild

Nu vet jag inte om jag hänger med i svängarna. Vad gör | egentligen? Jag trodde att tecknet filtrerade efter något eller några av orden med tecknet emellan, tex att ubuntu | linux | fedora filtrerade på ett eller flera av orden. Dvs minst ett eller fler gav träff i filtret?

Jag har testat (")-tecken, men det hjälper inte för att "hålla ihop" uttrycken mellan (|)-tecknen. Det går alltså inte att använda för att filtrera på olika uttryck. Jag vet hur jag filtrerar på mer än ett ord, problemet är att filtrera på mer än ett uttryck där varje uttryck består av två eller fler ord. På något sätt måste jag ju få PlanetPlanet att förstå att Ubuntu Linux | Red Hat, ska filtreras på Ubuntu Linux och Red Hat. Där minst ett av "uttrycken" ska finnas med i alla poster som filtret sorterar ut.

Jag har snappat upp att filter = ubuntu | linux |fedora ger träff om minst ett av orden förekommer, men jag vill ju filtrera på tex Ubuntu Linux, men inte Fedora Linux och då behöver jag något i stil med Ubuntu Linux | Fedora, INTE ett filter med Ubuntu | Linux | Fedora som ger träff på Ubuntu Linux men också Fedora Linux.

Ja, det kanske är lite oklart, men jag vill kunna filtrera på ett ord i kombination med ett annat, typ Linux portal, inte Linux | portal, som ger träff på antingen linux eller portal.

FoHs bild

Du har helt rätt i ditt antagande, det är precis så som strecket fungerar i ditt exempel Smile

Strecket är en OR/ELLER-operator, dvs om du har ett filter som är "ubuntu | fedora" så betyder det helt enkelt "visa poster som innehåller orden ubuntu ELLER fedora" (vilket du också upptäckt). Förmodligen kan du även använda &-tecken, som är en AND/OCH-operator. "ubuntu & fedora" borde då betyda "visa poster som innehåller orden ubuntu OCH fedora".

Problemet för dig är att filtrera på hela uttryck. Testade du om paranteser fungerade? Ett förslag på ett filter om du vill sortera ut poster som innehåller uttrycket "Ubuntu Linux" eller "Fedora" skulle kunna vara detta, förutsatt att paranteser fungerar för gruppering och att &-operatorn går att använda: "filter = (Ubuntu & Linux) | Fedora". Detta innebär dock att du får med poster som kanske har ordet Ubuntu i början på texten och Linux i slutet, dvs det säger inget om att orden måste stå precis bredvid varandra. Jag har dock se att du måste ha exakt så "fina" uttryck.

I Google-sökningar fungerar exempelvis det förslag som jag ger, där kan man gruppera saker med paranteser. Jag skulle t.ex. kunna använda följande sökuttryck i Google för att få alla träffar som har att göra med Richard M Stallman och ett av hans tal, oavsett om hans namn är utskrivet eller bara förkortat: "(Richard M Stallman | RMS) & speech" (utan citattecken då, eftersom den söker efter det bokstavliga uttrycket i det fallet, och det resulterar i noll träffar - åtminstone tills Google indexerar den här sidan Tongue)

ubots bild

Jag har inte testat att använda paranteser eller &-tecken, men ska göra det nu med en gång. Vad tror du om (Ubuntu Linux) istället för Ubuntu & Linux för att hitta hela uttrycket Ubuntu Linux och inte Ubuntu och Linux tillsammans men på olika ställen? Filtret "filter = Ubuntu Linux" filtrerar påuttrycket Ubuntu Linux, men går inte att kombinera med (|) och andra ord utan att missförstånd uppstår.

ubots bild

Nu har jag testat. "filter = (Ubuntu Linux) | (Red Hat) filtrerar ENDAST på Ubuntu Linux. Det är som om "| Red Hat" inte ens existerar.

Därefter testade jag att filtrera på "filter = (Ubuntu & Linux) | (Red & Hat)" och då får jag inte en enda träff trots att jag vet att alla sökorden finns i feedsen. Helt misslyckat alltså. Jag testade även på "filter = Ubuntu & Linux | Red & Hat", dvs utan paranterser (och citationstecken såklart), men fortfarande inte en enda träff trots att jag vet att alla ord förekommer.

Det som fungerar är alltså:

filter = keyword1 | keyword2

filter = keyword1 keyword2

Kombinationen är svår att få till och det är ju den jag söker.

Jag kan såklart kopiera konfigurationsfilen och skapa flera flöden där jag filtrerar flödet med ett filter i taget (tex "filter = keyword1 keyrod2" och sedan "filter = keyword3 keyword4"), men det känns liksom inte vettigt att lösa problemet på det sättet. Jag vill ju köra allt på en gång med "filter = keyword1 keyword2 | keyword3 keyword4".

FoHs bild

Tittade på källkoden och det verkar som att den använder sig av reguljära uttryck (regular expressions), vilket väl är ganska standard. Så filtret ska helt enkelt vara ett reguljärt uttryck. Jag tror även att koden bortsåg från stora och små bokstäver, så man behöver inte tänka på att matcha både "Red Hat" och "red hat" osv.

Dock så tycker jag att "filter = (Ubuntu Linux) | (Red Hat)" borde fungerat, men det är möjligt att man måste ta bort mellanrummen. Testa att skriva det som "filter =(Ubuntu Linux)|(Red Hat)" och funkar inte det kan du även testa "filter =(Ubuntu\ Linux)|(Red\ Hat)" utifall man behöver backslasha mellanrummen (du kan även testa att ersätta mellanrummen med en punkt). Ja, det är mycket nu... Reguljära uttryck är förstås mer kraftfulla, men det kräver ju en hel del pulande att få till dom. Du kan läsa lite mer här: http://docs.python.org/library/re.html

ubots bild

Ok, det låter bra. Jag ska göra några fler försök. Återkommer när jag har testat ett par gånger med olika kombinationer.

Edit 1:

Det verkar fungera! Mina första test fungerar fint efter att jag har tagit bort mellanrummen mellan paranteserna och (|)-tecknet.

Edit 2:

Det fungerar om jag skippar mellanrummen runt (|)-tecknet. Suveränt! Tack så mycket för hjälpen!

FoHs bild

Härligt! Äntligen Laughing out loud Ännu en fördel med öppen källkod, man kan kolla på koden själv när dokumentationen är obefintlig. Fast det är klart, hade det här varit en kommersiell produkt så hade det förstås funnits dokumentation för det hela Smile

rollss bild

Vid det här laget är all text komplett oläsbar. Varje ord stårpåsinegenrad, även om det är långt.

tldr

Smile

Varde svar på frågan

leochingkwakes bild

LP är inte roligt när man har 1024x768 eller mindre i upplösning. Man bör inte ha netbooks eller äldre datorer när man skall följa större diskussioner på LP. Smile

LAltinells bild

Indeed! Sitter här med min eeepc 901 och försöker följa tråden! ;P Drupal har väll fixerade teman också? Skulle det kunna gå att styra detta via något tillägg i URLen tro? Bara en tanke! Laughing out loud

 

--------------------------------------------------------------- www.selan.se -Lan i Borås!

leochingkwakes bild

Drupal har alla möjliga typer av teman. Men jag och flera andra har tagit upp detta tidigare när det fanns nån som hade hand om det tekniska och det kanske var planerat till nästa version. Fick aldrig nån vettig tanke om det. Men nu lär det väl inte hända än på väldigt länge... Verkar vara totalt dött på administrationssidan på LP...

jonasbjorks bild

Ska vi slå vad?

--
Failure is not an option. It comes bundled with your windows installation.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

leochingkwakes bild

Nej tack, det är bara bra om jag har fel... Smile

Har fått uppfattningen dock eftersom enkla sysslor inte gjorts. Som att sköta räknare under Aktuellt...

abergmans bild

Drupal är Open Source, skriv en modul som gör det du vill och maila den till Jonas så kanske den kommer upp i live versionen av LP.

Det är en Drupal 5 installation och det finns fina tutorials för hur man bygger moduler. Lycka till!

 

 

leochingkwakes bild

Varför skulle jag vilja skriva en drupalmodul?

abergmans bild

För att då bidrar du med något till portalen, mer än att påpeka den icke existerande avsaknaden av administration.

 

 

leochingkwakes bild

Tror inte det är möjligt att skriva drupalmoduler i C.

jonasbjorks bild

Jag tror inte det är möjligt att diskutera problem med någon som bestämt sig för att det inte finns en lösning..

--
Failure is not an option. It comes bundled with your windows installation.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

leochingkwakes bild

Kan jag ju inte påstå att jag har gjort...

abergmans bild

klart det gör! Skriv det som en apache2 modul istället. Eller som en CGI-app.

 

 

leochingkwakes bild

Kanske i framtiden... om jag ser nånting som kan motivera mig till att bidra med sådant arbete...

FoHs bild

JAg ber om ursäkt, har själv 1920x1200 eller vad det är för upplösning på den här skärmen, så jag har inte riktigt det problemet Smile

fredentofts bild

Jag har också 1920x1200 men har problemet, av den enkla anledningen att jag är allergisk mot maximerade fönster. Det blir alldeles för långa rader för att kunna läsa effektivt om man vill följa text över hela skärmbredden.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Argumentera aldrig med idioter. De drar bara ner dig till sin nivå och vinner på erfarenhet!

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

jonasbjorks bild

Under ursprungsinlägget, innan kommentarerna, har du möjlighet att ställa in hur kommentarer skall visas.

--
Failure is not an option. It comes bundled with your windows installation.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

ubots bild

Du som har kollat i koden. Vet du om det är möjligt i PlanetPlanet att filtrera inte bara på ord i titeln, beskrivningen eller taggarna tillsammans utan ver och en för sig? Så som det är nu så filtrerar jag rubbet, om orden eller uttrycken jag filtrerar på förekommer i titeln eller texten så "fastnar" objektet i filtret. Jag vill mer i detalj kunna styra vilken del av ett feed som PlanetPlanet ska filtrera. Går det?
Om jag inte har fel så är det Universal Feed Parser som "gömmer sig" i PlanetPlanet och isf bör det väl gå att filtrera feedsen väldigt detaljerat på något vis, men jag kanske har fel.

FoHs bild

Just nu har jag inte riktigt möjlighet att kolla i koden igen, då jag tvingas surfa via mobilen eftersom bredbandsleverantören inte levererar något bredband Sad Men jag kollade lite på dokumentationen till Universal Feed Parser tidigare för att se om det var just där som själva filtreringen sköttes, men som jag förstod det används det bara för att få ut själva datan från XML-dokumentet som feeden består av. Vad som sedan filtreras och visas sköts av PlanetPlanets egen kod. Jag får återkomma i ämnet vid ett senare tillfälle! Smile

ubots bild

Ok, det är möjligt. Jag vet inte hur det fungerar, bara att Feed Parser är inblandat på något vis i alltihop. Återkom gärna när du har tid/lust/möjlighet!

FoHs bild

Nu har jag tittat på koden, och så vitt jag kan avgöra så returnerar den en träff om det reguljära uttrycket finns i endera titeln eller själva text-innehållet. Det verkar vara hårdkodat och alltså inget man kan ställa in på antingen eller. Varför vill man göra det, förresten? Smile

ubots bild

Aha. Jo, det är jag säker på att PlanetPlanet filtrerar på titel och text, kanske annat också, typ taggar. Titel och text är jag helt säker på iaf.
Anledningen till att jag vill filtrera på titel ELLER text är att vissa feeds smyger in länkar i slutet av posterna, vilka innehåller massa ord som "fastnar" i filtret men postningen har egentligen inte ett skvatt med ämnet att göra. Om jag tex filtrerar på "Ubuntu Linux" så räcker det med att någon har en drös länkar i slutet av texten där en av länkarna innehåller Ubuntu Linux så får jag med hela postningen även om det handlar om Windows 7. Det här saboterar en hel del av filtreringen faktiskt. Många sajter har satt i system att lägga till relaterade länkar (som inte är så relaterade i praktiken) i slutet av postningar.

Det hade därför varit bra att kunna filtrera på titel ELLER text, inte titel OCH text. En fullösning hade ju varit att bara filtrera på typ 100-150 första orden i postningen för då slipper man nog länkarna i 99% av fallen, dvs inte filtrera på hela texten.

Edit:

Det måste ju vara något av det enklaste som finns att filtrera ett PlanetPlanet-feed. Jag menar alla poster är ju på samma form (tror jag). Det borde gå att filtrera PlanetPlanets färdiga feed om inte annat.

FoHs bild

Det går nog att anpassa det reguljära filteruttrycket för att inte matcha länkar. Det går ju dock inte med en OCH-relation eftersom posterna då inte skulle visas om en av länkarna innehåller "Ubuntu Linux" och även texten gör det. Kanske kan du anpassa själva söksträngen så att det är bortom allt tvivel att det är ett uttryck i löpande text. Tex skulle du kunna försöka få till en filtrering på "Ubuntu Linux" och dessutom måste det endera föregås av ett skiljetecken eller mellanslagstecken, samt avslutas med ett mellanslagstecken eller skiljetecken. Jag gissar lite nu, men möjligtvis skulle kanske ([\.\,\?\!\ ]+ubuntu[\.\,\?\!\ ]+) fungera för att filtera på Ubuntu i löpande text. Jag vet inte om man behöver "backslasha" alla skiljetecken, men punkt och frågetecken behöver man garanterat. Pluset tror jag står för en eller flera förekomster av tecknet inom hakparantesen. Alternativt är det ? som ger den funktionen. Kolla länken som jag postade tidigare och se om du kan knåpa ihop något som fungerar Smile

Det går ju att göra väldigt mycket med reguljära uttryck så jag tror inte det är något problem att lösa, problemet är bara att lära sig de reguljäa uttrycken så pass att man knåpar ihop det Smile

ubots bild

Ok, jag förstår vad du är inne på. Det låter ju vettigt. Oftast förekommer länkarna i slutet på en rad vardera, som en lista med länkar. Det är dom som ger fel träffar. I texten finns ju ofta nyckelorden inbäddade i någon form av text. Det hade nog fungerat skapligt bra om man hade någon form av filter som krävde att nyckelordet var omgärdat av olika tecken till höger och vänster om ordet. Jag ska kolla lite mer i länken du gav mig, men det är inte det lättaste att förstå hur reguljära uttryck fungerar.

Edit:

Ok, nu har jag testat lite med olika kombinationer av regular expressions. Efter några test så har jag kommit fram till det här enkla knepet: (ubuntu linux.*[\,\.\!\?]+)
det gör iaf att uttrycket bara fastnar om det är ett skiljetecken någonstans efteråt. Det här är ingen optimal lösning, men det fungerar ju så länge det inte finns en mening med något av tecknen efter länkarna som fastnar i mitt filter. Normalt så finns inget efter länkarna, som inte slutar med något av tecknen heller. Problemet är att tricket spricker ju med en gång om det finns en (.),(,),(?) eller (!) någonstans efter länkarna. Typ en kommentar som slutar med punkt efteråt.

Problemet med att ha med mellanslag inne i [ och ] är att då fastnar även länkarna i slutet av postningarna i filtret eftersom det även är mellanrum mellan orden i länkarnas titlar, typ "Visit Ubuntu Linux Forums Now" innehåller ju "Ubuntu Linux " och ett mellanslag direkt efter.

ubots bild

Jag testar en modifierad version av PlanetPlanet som heter Venus. Den ska ha större filtreringsmöjligheter. Problemet är att när jag testkör Venus mha python planet.py path_to/config.ini så startar testet, men sedan får jag upp "segmentation fault" istället för ett "Ok". Vad betyder det här egentligen?

ein.anderssons bild

segmentation fault betyder att programmet krashar
--
QuadMotion - bringing you torque
Sveriges största nyhetskälla om elfordon!

Denna text får användas enligt CCommons BY-ND 2.5 med undantag från att den inte får kopieras, sändas eller distribueras utan att informera mig

ubots bild

Jo, så mycket har jag förstått, men varför? Struntsamma, jag har installerat det via apt-get istället för från hemsidan. Problemet är att jag får inte planet-venus att starta. Jag hittar helt enkelt inte startfilen. Så hur startar jag planet-venus? planet-venus väg_till/konf fungerar ju inte.

 

Edit:

Jag hade nog inte rätt rättigheter inställda på cache-katalog eller något. Fixade lite med rättigheterna och nu fungerar planet-venus. Eller så var det för att jag avinstallerade PlanetPlanet. Startfilerna heter planet i PlanetPlanet och Venus. Aja, problemet löst.