TweakBlog API is releasewaardig

Door pinna_be op donderdag 10 april 2014 00:52 - Reacties (11)
Categorie: mini projects, Views: 5.199

inleiding

Zoals u misschien al had gelezen in mijn vorige blog, ben ik begonnen met een third-party api te schrijven voor tweakblogs. Dit was begonnen als een persoonlijk project (ik wilde enkel mijn blogs op mijn website zetten), maar er leek wel wat interesse voor te bestaan.

features

Met deze versie van de API kan je
  • Een lijst van recente tweakblogs ophalen (met blacklist/whitelist features)
  • Een lijst van een gebruiker's tweakblogs ophalen
  • Voor elke tweakblog een titel, een samenvatting, de auteur (momenteel niet echt de auteur, zie later), de inhoud en de reacties opvragen
Dingen die er misschien in de toekomst nog bijkomen:
  1. Een eficiŽnte manier van lokaal opslaan en uitlezen
  2. Een manier van reacties achterlaten
  3. de echte auteur opslaan, naast de "url-auteur"
  4. Eventuele suggesties van jullie
issues
  1. lokaal opslaan/uitlezen:
    Ik heb geen idee of ik dit via SQL moet doen (de "mooie" oplossing imo) of via een file-based manier. Via SQL vind ik het mooist en is het handigst voor eventuele zoekfuncties en dergelijke, anderzijds is een file-based versie draagbaarder (sql is niet vereist). Deze functie is wel essentieel voor mensen met een beperkte datatrafiek op hun webhost
  2. reacties achterlaten
    Dit is me na meermaals proberen niet gelukt. Het is niet zo simpel als gewoon het formulier overnemen, aangezien ik vermoed dat de beveiligingstoken die je meekrijgt rekening houdt met het ip die het opvraagt. Ik ben gestopt met het zoeken van manieren om dit te omzeilen, eerst en vooral omdat het voor mij niet essentieel is, maar vooral ook omdat het me echt niet lukte. Als iemand hier een manier voor kent of tijd heeft een beetje te reverse engineeren, laat het dan aub weten, ik denk dat het voor veel tweakers een meerwaarde zou kunnen zijn.
how to use

Een lijst van recente Tweakblogs ophalen:


code:
1
2
3
require_once "Folder/TweakBlog.php";
    
$list_of_tweakblogs = TweakblogAPI\TweakBlog::getTweakblogsLatest();



Werken met filters
  1. crŽer een blacklist of een whitelist

    code:
    1
    2
    3
    4
    
    require_once "Folder/TweakBlog.php";
                
    // laat tweakblogs van marcotm.tweakblogs.net niet toe
    $bw = new TweakblogAPI\BlackWhiteList(TRUE, array("marcotm") );


    OF

    code:
    1
    2
    3
    4
    
    require_once "Folder/TweakBlog.php";
                
    // laat enkel van pinna.tweakblogs.net of marcotm.tweakblogs.net toe
    $bw = new TweakblogAPI\BlackWhiteList(FALSE, array("marcotm", "pinna") );

  2. haal je lijst op

    code:
    1
    
    $list_of_tweakblogs = TweakblogAPI\TweakBlog::getTweakblogsLatest($bw);

Een lijst van iemand's tweakblogs ophalen


code:
1
2
3
4
require_once "Folder/TweakBlog.php";
    
// haal de blogs van pinna.tweakblogs.net op
$list_of_tweakblogs = TweakblogAPI\TweakBlog::getTweakblogsFrom( "pinna" );



Een aparte tweakblog ophalen


code:
1
2
3
4
require_once "Folder/TweakBlog.php";
    
// haal een specifiek blog van pinna.tweakblogs.net op
$tweakblog = new TweakblogAPI\Tweakblog("http://pinna.tweakblogs.net/blog/10130/update-tweakblog-api-01.html");



Standaard attributen van een blog ophalen


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require_once "Folder/TweakBlog.php";
    
// haal een specifiek blog van pinna.tweakblogs.net op
$tweakblog = new TweakblogAPI\Tweakblog("http://pinna.tweakblogs.net/blog/10130/update-tweakblog-api-01.html");

// haal de titel op    
$titel = $tweakblog->getTitle();
// haal het tijdstip van plaatsen op
$tijdstip = $tweakblog->getTime();
// haal een korte beschrijving (= de eerste 400 karakters van de blog) op
$beschrijving = $tweakblog->getDescription();
// haal de inhoud van de blog op
$bloginhoud = $tweakblog->getBlog();
// haal de schrijver van de blog op (bvb pinna bij pinna.tweakblogs.net en dus niet pinna_be, de eigenlijke gebruikersnaam)
$auteur = $tweakblog->getAuthor();



Reacties


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
require_once "Folder/TweakBlog.php";
    
// haal een specifiek blog van pinna.tweakblogs.net op
$tweakblog = new TweakblogAPI\Tweakblog("http://pinna.tweakblogs.net/blog/10130/update-tweakblog-api-01.html");

// haal een lijst van reacties op
$reactions = $last_tb->getReactions();
    
// reacties standaard attributen
$reaction = reactions[0];
// haal de naam van de plaatser op
$plaatser = $reaction->getName();
// haal de inhoud van de reactie op
$inhoud = $reaction->getMessage();



installatie

Op github vind je de source code van het project. Je moet simpel weg de source files BlackWhiteList.php, TweakBlog.php, TweakBlogreaction.php ergens in een folder steken en dan hoef je enkel TweakBlog.php te includen/requiren.

extra opmerkingen

In de readme.md beschrijf ik hoe je een donatie kan doen. Dit is geen specifieke vraag naar donaties (ook geen afwijzing uiteraard), ik heb dit geplaatst op verzoek van iemand die onbekend wil blijven en iets wilde doneren.

Een andere manier om te steunen, is om de api te gebruiken om een alternatief tweakblogplatform op te zetten of om simpelweg je blog op je website te zetten en het me te laten weten. Dit kost je niks en je doet me er een groot plezier mee.

De inhouden van blogs krijg je zonder opmaak, enkel de htmltags die in de originele blog staan staan erin. In het algemeen lijken deze tags voldoende om een redelijk mooie blog weer te geven.

bugs en feature-requests

Je mag ze laten weten op een manier naar keuze. Opties zijn DM via tweakers, een mail, reactie onder deze blog, via github, ... . Ik probeer steeds te antwoorden en zal in het antwoord laten weten of ik het kan/wil implementeren. Hoe dan ook ben je vrij (leve opensource!) om mijn code te forken en aan te passen. Verder kan je ook steeds een commit sturen, als ze iets bijbrengt voeg ik ze mee toe. (vergeet ook zeker niet jezelf als author te vermelden als je iets meldenswaardig hebt gedaan).