MikkelRev Skrevet 9. juni 2010 Del Skrevet 9. juni 2010 (endret) Edit: har delvis løst problemet. Men trenger tips til kodeoptimalisering: https://www.diskusjon.no/index.php?showtopic=1235886&view=findpost&p=15829109 ------------------------------------------------------------------------ På nettsiden min har jeg laget en egen tabell i mysql som lagrer og logger det meste som skjer på siden, feks om jeg laster opp et bilde eller når det kommer brukerkommentarer. Tabellen har kolonnene id,date,name,action,linkname,linkurl,image. Den ser slik ut: http://www.truemetal.org/cirithungol/newsfeed.php Det jeg ønsker er: istedetfor Twitter-widget'en til høyre, så vil jeg integrere hver tweet (twitter-post) i mitt eget system. Da trenger jeg å hente bilde, navn, status og tid for hver tweet. Det gjør ingenting om posten får twitter-design i min egen feed, bare rekkefølgen er sortert riktig. Tilsvarende ønsker jeg også å gjøre med facebook-gruppene/fansidene som er linket til nedenfor. Jeg vet twitter har RSS/Atom-funksjon, jeg har aldri vært borti det og vet knapt hva det er. Kan det komme til nytte? Jeg vet facebook har et stort API og diger bok om facebookprogrammering, men om det er noen her som har vært borti facebookprogrammering, hadde det vært kult å blitt ledet i riktig retning. Går det an å hente oppdateringer når noen poster nye innlegg på blogger/blogspot som omhandler temaet også? Noen idéer ? Endret 19. juni 2010 av MikkelRev Lenke til kommentar
MikkelRev Skrevet 11. juni 2010 Forfatter Del Skrevet 11. juni 2010 Jeg fant ut hvordan jeg får hentet data fra twitter rss'en til php variabler. Men hvordan får jeg rss fra facebook grupper, facebook fansider, youtube kanalers Recent Activity, MySpace blogger og Last.fm Shoutbox ? Lenke til kommentar
Jonas Skrevet 11. juni 2010 Del Skrevet 11. juni 2010 http://lmgtfy.com/?q=myspace+blog+rss http://lmgtfy.com/?q=last.fm+shoutbox+rss http://lmgtfy.com/?q=facebook+group+wall+rss http://lmgtfy.com/?q=youtube+rss http://pipes.yahoo.com/pipes/pipe.info?_id=4374c04a7a6cefefef9b449a687a3891 http://www.youtube.com/rssls http://blog.last.fm/2007/05/30/rss-your-shoutbox-and-you MySpace har for øvrig en RSS-link på toppen av hver blog. Lenke til kommentar
MikkelRev Skrevet 11. juni 2010 Forfatter Del Skrevet 11. juni 2010 MySpace har for øvrig en RSS-link på toppen av hver blog. Takk for den! Så den når jeg klikket på vis alle blogger. http://pipes.yahoo.com/pipes/pipe.info?_id=4374c04a7a6cefefef9b449a687a3891 Fant den når jeg googlet selv. Den funker forsåvidt men har noen leie begrensninger. Kun Gir kun oppdateringer fra diskusjonstråder, ikke fra wallen. Kun fornavn på debattantene. Ingen profilbilde. http://www.youtube.com/rssls Takk for den. Gir kun oppdateringer for Uploads, ikke Recent Activity, men bedre enn ingenting. http://blog.last.fm/2007/05/30/rss-your-shoutbox-and-you Denne fikk jeg ikke til å funke. Prøvde: http://tools.microformatic.com/transcode/rss/hatom/http://www.last.fm/group/Cirith+Ungol/shoutbox Da prøver den å laste ned en fil, en rss fil på 1 linje, kun dtd. Lenke til kommentar
MikkelRev Skrevet 19. juni 2010 Forfatter Del Skrevet 19. juni 2010 (endret) Jeg har klart å laste inn oppdateringer fra diverse kanaler med rss/atom. Alle oppdateringene kan beskues på http://www.truemetal.org/cirithungol/newsfeed.php. Et annet problem nå er det går fryktelig treigt å laste siden. Den henter oppdateringer fra ca 10 kanaler nå, og jeg tipper det ikke blir bedre når jeg legger til feeds fra 10 kanaler til. Jeg trenger å optimalisere koden min. Hvordan gjør jeg det uten at det går ut over funksjonalitet? Jeg vet jeg kunne ha hentet feeds fra enkelte kanaler feks en gang i uken istedetfor ved hver refresh, men jeg vil at den alltid skal være up-to-date. Slik fungerer koden (delvis pseudokode) foreløpig: -Loop gjennom xml'en og hent ut variablene. -Finnes feed'en fra før i db'en? Isåfall ikke legg til, bare oppdatert tiden. -Ellers legg til feed'en. NEWSFEED.PHP: include twitterfeeds.php / myspacefeeds.php / etc MYSPACEFEEDS/TWITTERFEEDS.PHP/ETC: insertmyspacefeed(url.xml); innsertmyspacefeed($file) { $xml = simplexml_load_file($file); if ($xml === FALSE) exit('Error parsing xml'); foreach ($xml->channel->item as $property=>$value) { if (!empty($value)) { //Kode for å hente variablene $name, $action, $linkname, $linkurl og $image fra xml'en. //$linkurl=$value->link osv $sql="SELECT id FROM newsfeed WHERE name='$name' AND action='$action' AND linkname='$linkname' AND linkurl='$linkurl' AND image='$image'"; $result=runquery($sql,"twitterfeeds.php/select_tweets"); if(mysql_num_rows($result)>0) { $sql="UPDATE newsfeed SET date = '$date' WHERE id = ".mysql_result($result,0,"id"); runquery($sql,"twitterfeeds.php/update_tweets"); } else { $sql="INSERT INTO newsfeed (date, name, action, linkname, linkurl, image) VALUES ('$date', '$name', '$action', '$linkname', '$linkurl', '$image')"; runquery($sql,"twitterfeeds.php/update_tweets"); } } } Grunnen til at jeg har egen funskjon for hver av de forskjellige feedsene (en for myspace, en for twitter osv) er at xml'ene er bygd opp forskjellig og har i tillegg forskjellige elementnavn, så da er det ikke rett fram å kjøre en og samme funksjon for alle. Grunnen til at den først søker (SELECT) for å se om feed'en finnes fra før, er at ellers, så vil den INSERT'e for hver gang du klikker inn på newsfeed.php. For det andre er det heller ikke nødvendig å vise hver gang jeg har redigert en side. Hender jeg oppdaterer en og samme side 99 ganger på rad, pga jeg ser en ekstra skriveleif eller noe, og da er det kun siste oppdatering som er av interesse. Derfor UPDATE. Endret 19. juni 2010 av MikkelRev Lenke til kommentar
Jonas Skrevet 22. juni 2010 Del Skrevet 22. juni 2010 (endret) Sporringer i lokker pa den maten er aldri en god ide. Skalerer ekstreeemt darlig. Opprett en cron job som kjorer f.eks. hvert 15. minutt og legg til alle elementer som er mindre eller akkurat 15 minutter gamle. (Forutsatt at elementet inneholder noe form for timestamp) Tips er for ovrig a logge antall sporringer som kjores og hvor lang tid hver av disse bruker. Da er det ofte lettere a luke ut flaskehalser. Er du litt dreven prover du xdebug e.l. Endret 22. juni 2010 av Jonas Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå