Programidé: LinkWatch

En kollega kläckte en cool idé i veckan.

Den är sprungen ur observationen att man ofta kollar upp ett antal sidor på internet varje dag, om och om igen, för att se om de uppdaterats.

Oftast har de inte det, och man har slösat några sekunder av sin dyrbara tid och, ännu värre, blivit lite mer besviken.

Idén är då att ha ett program, LinkWatch, där man kan klistra in länkarna man är intresserad av. Sedan kollar programmet upp om sidorna ändrats. Här är en skiss på hur det kan se ut:

Skiss: LinkWatch

Skiss: LinkWatch

Fetstil betyder alltså att sidan länken pekar på har uppdaterats (sedan man lade till länken eller klickade på länken sist via programmet).

Så jag tänkte spendera dagen med att försöka implementera detta i C# WinForms, med målplattform .NET2.0/mono1.2.6. Detta betyder att man kan köra programmet i WindowsXP/Vista och Ubuntu, kanske också Mac (någon därute som vet om WinForms.NET2.0 funkar i Mac utan att behöva installera något särskilt extra?).

Givetvis blir det ett Open Source-program, så att andra kan bygga vidare på det eller använda idén i någon helt annan miljö!

Uppdatering: Jag har stött på två problem.

1. Vissa siter går inte att läsa av med .NET’s vanliga Http-anrop (jag får Exception). Det gäller t.ex. om jag läser av ”http://bloggar.se/om/fra”.

2. Många siter ger olika svar varje gång man anropar. T.ex. ”http://opassande.se” och ”https://olofb.wordpress.com”.

Det första problemet har jag ingen aning om hur jag ska tackla; kanske måste man ange vilken ”browser” som används, eller något sådant, för att siten ska acceptera anropet. Om det är någon som har tips, hojta gärna till.

Det andra problemet har jag en strategi för att gå på, och det är att ”filtrera ut” endast synliga tecken ifrån HTML-koden. Det är trots allt dessa tecken som är intressanta att bevaka utifall de ändras. Det blir lite mera jobb än jag hoppats från början, men med lite HTML-parsande/reguljära uttryck borde det inte vara alldeles omöjligt.

Uppdatering 2: Asch då.

Har läst runt lite om error 403 som jag får. Den sannolika anledningen att jag får 403 (som betyder Forbidden i HTTP-protokollet) är att många siter, t.ex. bloggar.se och knuff.se inte vill att ”robotar” ska söka av deras siter automatiskt.

Antagligen är det för att de vill att man ska surfa dit ”på vanligt sätt” för att de är reklamfinansierade.

Detta problem går säkert att komma runt på något trixigt sätt – jag är inte webbutvecklare till vardags så jag vet inte hur man gör på rak arm – men frågan är om inte detta gör hela programidén lite vacklande.

Just nu känns det i alla fall lite mörkt..

Uppdatering 3: Mera bekymmer

Det andra problemet, att vissa sidor ger olika resultat varje gång man laddar ned, är om möjligt ännu besvärligare. Grejen är att sidorna kan ha ”reklamrutor” som ändras när man läser om sidan, eller kanske någon slumpartad länk någonstans.

Möjligen skulle man kunna filtrera ut endast ”vanlig text” (icke-länkar) och saker som ser ut som google-ad-rutor (de ligger säker i något div-block som man kan detektera) men hela programmet blir med ens rejält mycket ”dyrare” att utveckla, och förmodligen med lägre tillförlitlighet.

Det är alltså både teknisk-ekonomiska och politiska argument som talar emot LinkWatch😦

Det känns därför motigt att fortsätta med projektet idag. Vet inte om jag ska lägga det på ”idéer som aldrig förverkligades”-hyllan och ge mig in på något mer produktivt idag..

Uppdatering 4: En lösning funnen. Jag fick via Erik Josefsson reda på siten ”ChangeDetection.com” dit man kan regga en URL att ”tracka”. Så får man ett mail när siten ändras. Det är dock bara en gång om dagen – inte varannan minut som jag hade hoppats på.

Taggar: , ,

14 kommentarer till Programidé: LinkWatch

  1. Olof skriver:

    Här är en screenshot på hur det ser ut hittills. Det går att klicka på länkar, men inte mycket mer!

    LinkWatch0

  2. berinder skriver:

    För mig att det finns webbtjänster där du lägger till adresserna och sen skickar den rss-feeds när det uppdateras…

  3. Olof skriver:

    Finns det säkert – det är bara så svårt att hitta exakt vad man vill ha på internet ibland! [Fast RSS-feed är lite obekvämt format för ovana datoranvändare – som jag :)]

  4. Olof skriver:

    Asch då.

    Har läst runt lite om error 403 som jag får. Den sannolika anledningen att jag får 403 (som betyder Forbidden i HTTP-protokollet) är att många siter, t.ex. bloggar.se och knuff.se inte vill att ”robotar” ska söka av deras siter automatiskt.

    Antagligen är det för att de vill att man ska surfa dit ”på vanligt sätt” för att de är reklamfinansierade.

    Detta problem går säkert att komma runt på något trixigt sätt – jag är inte webbutvecklare till vardags så jag vet inte hur man gör på rak arm – men frågan är om inte detta gör hela programidén lite vacklande.

    Just nu känns det i alla fall mörkt..

  5. calandrella skriver:

    Piratpartiet Toolbar finns, som fungerar delvis som den funktion du skissar på.

  6. Olof skriver:

    calandrella: kan du beskriva lite mera om pp toolbar? Är den till för allmänna länkar, kan jag t.ex. lägga dit bloggar/om/fra?

  7. Jörgen L skriver:

    Några tips:

    1. Fundera på att använda RRS-flöden för siter där det är relevant, de är enklare att detektera förändringar med.

    2. Det finns en intressant HTML-parser som open source på http://htmlagilitypack.codeplex.com/ den klarar även hyfsat dåligt formatterad HTML och är bra mycket enklare än att parsa själv. Skriven i c#, så den ska gå att kompilera som .net2.0 Har XPATH sökning och innerText på godtyckliga element.

    3. Mac==Unix tror att man behöver mono där. Har för mig jag sett mac referenser vad gäller mono.

    4. Fiddler2, en mjukvaruproxy som kan visa exakt vad som skickas fram och tillbaka mellan browser och nätet.

  8. Olof skriver:

    JL!

    Tack för dessa tips.

    Kanske ska jag inte riktigt än slänga bort idén!

    Lite svar på varje punkt:

    1. RSS-flöden: jag drog mig för dessa eftersom jag prövat några gånger med olika program, och det inte känns tillräckligt enkelt att använda (för nördigt). Men när du tvingade mig att tänka på det igen kom jag på att LinkWatch kanske skulle försöka leta upp RSS-flödesikonen på sidan man lägger till först av allt! Alltså lite annan algoritm om sidan innehåller RSS-flöde. På så sätt blir programmet snabbare/mera tillförlitligt med RSS-flöde, men funkar även utan.

    2. htmlagilitypack: Tack! Kan användas för att hitta RSS-flödet, och annars för att plocka ur ”brödtexten” vilken jag kan använda för att kolla om siten uppdaterats på ett mera stabilt sätt än att kolla byte-för-byte (som jag försökte naivt i fredags..)

    3. Jepp mono är det som gäller. I Ubuntu som jag kör hemma funkar det alright, om än med några grafiska skavanker här och där. I Mac däremot vet jag inte hur bra WinForms/mono funkar..

    4. Fiddler2: För att ”simulera” ett firefoxanrop kan ju detta vara händigt. Det är lite lurigt på den fronten, det blir ju lite ”konfliktsituation” med t.ex. bloggar.se, vilket jag inte vill egentligen (tycker det är en av de mest användbara bloggsökmotorerna). bloggar.se/om/fra var en av mina viktigaste ”morötter” för att bygga LinkWatch ifrån början.

  9. Eva-Lena skriver:

    Kändes som att läsa grekiska eller nåt annat språk jag inte förstår.Inser att jag borde gå en kurs, eller rent av hundra. Men när ska man ha tid till det?

  10. nitro2k01 skriver:

    Varför inte implementera detta som en Firefox-plugin istället? Fungerar på ”alla” plattformar, och kan utnyttja kakor och annat som kan behövas.

  11. Olof skriver:

    @Eva-Lena:
    Hehe bara lugn ”all vår början bliver svår”🙂 Det är bara att ta en sak i taget och våga pröva!

    @nitro:
    Visst hade ett plugin varit bättre än en desktop-app! Även en google-widget (för igoogle.com) eller t.o.m. facebook-app hade varit mera ”slick”.

    MEN – jag kan inget av det där! Jag kodar C#/desktop apps till vardags, och plugins till Firefox är säkert en del ”jox” med, för att inte tala om att lära sig webbprogrammering på ett mera ”seriöst” sätt än min amatör-php-kunskap!

    PS. LinkWatch ligger på is just nu. Trots JörgenLs ihärdiga försök att övertala mig mha. att tipsa mig om hur jag kommer runt problemen jag stött på😉 Jag blev ”lack” som vi säger i Skåne, när det tog emot mer än jag trott ifrån början. DS

  12. Osias skriver:

    [English] I use http://page2rss.com and google reader to monitor pages changed, I’m not sure if is that what you want, but give a look:

    http://page2rss.com/page?url=www.google.com.tr/

    Another example:

    http://page2rss.com/c/b4f9ca5881759966b97a53824387e721/4363134_4363614/if-wgnotice-document-writeln-wgnotice-

  13. Olof skriver:

    Osias – you know swedish?? Cool🙂

    And thanks a lot for you tips, maybe this is what I’m looking for!

  14. Osias skriver:

    I’m in the very basics with Swedish, I use a lot wikidictionary (I select a word then use a mouse gesture to translate it) and even Google Translator to help me understand. Someday I’ll be able to read the entire ”Djävulen bär Prada” I bought last January🙂

    Another tip: the second link shows I’ve Swedish Wikipedia to page2rss. But reading individual changes can be hard because of the stroked words. So I’m using Stylish extension to hide them via CSS.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: