blogCFC pingt Googles Blog-Suche

Wenn’s ums Suchen geht, ist Google nach wie vor das Mass aller Dinge. Also will man logischerweise bei Google gut positioniert sein. Und das Blogs gut gelistet werden, ist eine keine grosse Neuigkeit. Oftmals dauert es aber gerade bei kleineren Blogs arg lange, bis neue Beiträge in den Index aufgenommen werden. Und so versuche ich nun, Google ein wenig Beine zu machen und liefere neue Blog-Posts direkt an die Google Blog-Search-Api. Natürlich mit meinem ColdFusion-Blog, basierend auf blogCFC.

Der blogCFC von Raymond Camden beinhaltet schon eine ganze Reihe von Ping-Funktionen, um neue Beiträge bei Feed-Aggregatoren wie technorati.com und dergleichen anzumelden. Für Google’s Blog-Suche habe ich allerdings nichts passendes gefunden und so habe ich eben selber eine kleine Funktion dafür erstellt. Die Erweiterung ist wirklich simpel, vielleicht baut sie Ray ja sogar in seinen Code ein. Die neue Funktion selber ist in der Datei ping.cfc im Verzeichnis /org/camden/blog/ integriert:
<cffunction name="pingGoogle" output="false" returnType="any" access="public"
                hint="Ping blogserach.google.com to add blog to high-priority indexing queue">

    <cfargument name="blogtitle" default="" type="string" required="yes" />
    <cfargument name="blogurl" default="" type="string" required="yes" />
    <cfargument name="blogrssurl" default="" type="string" required="yes" />
    <cfargument name="blogcategories" default="" type="string" required="no" />
    
    <cfset var pingData = "" />
    <cfset var pingDataLen = "" />
    <!--- set listDelim to |, if blogcategories are submitted --->
    <cfif arguments.blogcategories neq "" And Find(",", arguments.blogcategories)>
        <cfset arguments.blogcategories = ListChangeDelims(arguments.blogcategories, "|", ",")>
    </cfif>
    <cfoutput>
    <cfsavecontent variable="pingData">
        <?xml version="1.0"?>
        <methodCall>
            <methodName>weblogUpdates.extendedPing</methodName>
            <params>
                <param><value>#arguments.blogTitle#</value></param>
                <param><value>#arguments.blogURL#</value></param>
                <param><value>#arguments.blogURL#</value></param>
                <param><value>#arguments.blogrssurl#</value></param>
                <param><value>#arguments.blogcategories#</value></param>
            </params>
        </methodCall>
    </cfsavecontent>
    </cfoutput>

    <cfset pingData = trim(pingData) />
    <cfset pingDataLen = len(pingData) />

    <cfhttp method="POST" url="http://blogsearch.google.com/ping/RPC2" timeout="20" throwonerror="No">
        <cfhttpparam type="HEADER" name="User-Agent" value="BlogCFC"/>
        <cfhttpparam type="HEADER" name="Content-length" value="#pingDataLen#"/>
        <cfhttpparam type="XML" value="#pingData#"/>
    </cfhttp>

    <cfif cfhttp.statuscode contains "200" and cfhttp.filecontent contains "<member><name>flerror</name><value><boolean>0</boolean>">
        <cfreturn true />
    <cfelse>
        <cfreturn false />
    </cfif>
</cffunction>

Aufgerufen wird sie durch die beiden CFCs ping7.cfc und ping8.cfc. Die beiden Dateien werden zur Unterscheidung der eingesetzten ColdFusion-Version benötigt, respektive um neuere Funktionen von ColdFusion 8 (cfthread) zu verwenden. Die beiden Dateien liegen im gleichen Verzeichnis wie ping.cfc. In beiden Files habe ich eine weitere if/else-Klausel erstellt, die nach dem Begriff «@googleblogsearch» sucht. Diesen Begriff verwende ich bei den Ping-Einstellungen in den Settings als Abkürzung für den Google-Dienst. Die letzte Anpassung betrifft die Datei blog.cfc, ebenfalls im gleichen Verzeichnis. Bei der Funktion addEntry, genauer gesagt beim Aufruf der Funktion ping.pingAggregators() habe ich ein zusätzliches Argument zur Übergabe der Url zum Blog-Rss-File eingebaut. So, und jetzt mal schauen, wie sich das auf das Tempo der Indexierung neuer Einträge bemerkbar macht…

Verwandte Blog-Einträge

Kommentare

Leave this field empty
Ihren Kommentar hinzufügen

Falls Sie abonnieren, werden alle neuen Kommentare zu diesem Thema an Ihre E-Mail-Adresse gesandt.

TrackBacks

Es gibt keine Trackbacks für diesen Eintrag.

Trackback URL dieses Eintrages:
http://www.samelis.ch/blog/mischa/trackback.cfm?id=77AAEB8E-4FEC-421F-A05C26B0FC4FCBD5