Blogger (Google) und die Google API

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Ich muss mir das Skript py2blogger.py (http://rlove.org/misc/py2blogger.py) von Robert Love für meine Bedürfnisse anpassen. Das Skript ist in der Handhabung für mich momentan noch einfacher als die direkte Arbeit mit der Google API.

Ich stolpere momentan über diese Zeile und komme nicht direkt weiter, weil ich mit einzelnen Punkten nichts anfangen kann:

Code: Alles auswählen

tm = time.localtime(os.fstat(f.fileno()).st_mtime)
Kann mir jemand sagen, was ich direkt eingeben könnte, wenn ich tm im Quelltext angeben möchte und nichts abfrage??? Ich habe die Datei-Lade-Sache schon komplett entfernt, das will ich direkt im Quelltext haben.

time.localtime() liefert bei mir:

Code: Alles auswählen

time.struct_time(tm_year=2012, tm_mon=4, tm_mday=21, tm_hour=15, tm_min=12, tm_sec=37, tm_wday=5, tm_yday=112, tm_isdst=1)
Ich muss später einmal direkt die Daten für Jahr usw. per Hand anpassen können. Weiß jemand zufällig, ob es bei Blogger eine Begrenzung bei der Jahreszahl auf den Bereich ab 1988 gibt???

Eine Rückantwort (und ggf. Erklärung) wäre sehr hilfreich.
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Ich habe es ans Laufen bekommen, ich werde gleich noch Änderungen am Skript posten. Ich hoffe, dass ich nichts übersehen werde. Da scheinen einige Punkte im Quellcode nicht mehr aktuell zu sein.
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Ich bin mir nicht sicher für welches Einsatzszenario Love das Skript entwickelt hatte, jedenfalls will ich erst einmal nicht, dass das Skript Daten einer Datei entnimmt. Ich habe dazu die main-Funktion so geändert, dass ich erst einmal manuell Daten eintragen kann:

Code: Alles auswählen

def main():
  client = BloggerPost()
  title = 'Test'
  tm = '2012-04-20T17:03:00.001-07:00'
  content = 'Test'
  client.CreatePost(title, content, tm)
  print 'Successfully posted entry'
Außerdem waren oben noch Änderungen nötig und zwar in der Funktion CreatePost:

Code: Alles auswählen

  def CreatePost(self, title, content, tm):
    entry = gdata.GDataEntry()
    entry.title = atom.Title('xhtml', title)
    entry.content = atom.Content(content_type='html', text=content)
    if (DRAFT == 1):
      entry.control = atom.Control()
      entry.control.draft = atom.Draft(text='yes')
    entry.published = atom.Published(tm)
    return self.service.Post(entry, '/feeds/' + self.blog_id + '/posts/default')
Da tm bereits fertig aus der main-Funktion übergeben wird, ändert sich die entsprechende Zeile komplett. Außerdem war eine Änderung in der Zeile für entry.content erforderlich, die nun so aussieht:

Code: Alles auswählen

entry.content = atom.Content(content_type='html', text=content)
Ich bin mir hier sicher, dass das ein Fehler im Originalquelltext ist, da die Zeile in der jetzigen Form der Google-Anleitung genau entspricht.

Beiträge können jetzt einfach gepostet werden. Es scheint eine Einstellung bei blogger.com zu geben, die Post früher als 1988 nicht erlaubt. Versucht man es trotzdem, so gibt es einen Server-Fehler :-( Ehrlich gesagt ist es aber genau das, weshalb ich mich die letzten Tage mit der Software und der Google API herumgeschlagen hatte.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Ich vermute einfach mal (so offensichtlich es auch zu sein scheint), dass das Skript in der ursprünglichen Form es ermöglichte per Kommandozeilenaufruf aus mehreren Dateien dementsprechend viele Blogposts zu machen. Und das mit dem Zeitstempel jeder Datei (den du ja jetzt manuell gesetzt hast). Inhalt vom Code trennen, weißte.
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Jepp - das ist mir jetzt auch klar. Ich war bei der einen Zeile nicht weitergekommen.

Bei mir sollte das Skript einmal aus einer CSV-Datei Zeilen einlesen und dann an die drei Variablen Titel, Inhalt und Zeitstempel übergeben. Da ich aber nichts vor 1988 posten kann, sehe ich momentan nicht, dass ich blogger.com gebrauchen kann.
BlackJack

@pixewakb: Kann es sein, dass Du vor 1988 noch nicht auf der Welt warst? Ich kann nämlich Posts vor 1988 anlegen, aber keines vor meinem Geburtsdatum. Macht ja auch irgendwo Sinn. :-)
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

BlackJack hat geschrieben:@pixewakb: Kann es sein, dass Du vor 1988 noch nicht auf der Welt warst? Ich kann nämlich Posts vor 1988 anlegen, aber keines vor meinem Geburtsdatum. Macht ja auch irgendwo Sinn. :-)
Danke dir für deinen Beitrag! Ich hätte das sonst nicht mehr überprüft. Mit dem Geburtstag hat das - leider - nichts zu tun, dann wäre die Lösung des Problems über einen Fake-Geburtstag einfach. blogger.com riegelt bei 1970 ab, ein Post mit Datum von 1969 wird bereits nicht mehr akzeptiert.
RequestError: {'status': 500, 'body': 'Internal error: bX-snqgil', 'reason': 'Internal Server Error'}
Ich möchte Beiträge für den Bereich von etwa 1900 bis 1920 posten und im Rahmen eines Arbeitsberichtes dann wieder 2012 ff. Wordpress hat mit einem sehr frühen Post-Datum kein Problem, nur blogger.com stellt sich quer. Ich hatte schon mal versucht jemanden bei Google zu erreichen, aber eine Kontakt-E-Mail-Adresse scheint es dort einfach nicht zu geben :-( Da der Fehler aus meiner Sicht eine technische Einrichtigung auf den Google Servern ist, scheint nur die Verwendung einer anderen Blogsoftware eine probate Lösung zu sein. Sehr schade...
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

pixewakb hat geschrieben:blogger.com riegelt bei 1970 ab, ein Post mit Datum von 1969 wird bereits nicht mehr akzeptiert.
Riecht nach Epoch: https://en.wikipedia.org/wiki/Unix_epoch
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Ich sehe mir gerade Wordpress an. Nur zum besseren Verständnis, Unix epoch klingt nicht nach einer Begrenzung in blogger, die Google leicht ändern könnte und nur in blogger enthalten ist. Eine Anfrage bei denen wird wohl kaum Aussicht auf Erfolg haben -
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja, das Gefuehl habe ich auch. Wenn man sich mal den Grund (Datum "faelschen") fuer die Aenderung ansieht, sehe ich auch keinen grossen Grund das zu aendern.
Die Schwierigkeit der Aenderung haengt allerdings komplett davon ab, _wie_ sie es benutzen.

Die Anfrage wuerde ich aber trotzdem stellen, so wird zumindest mal Interesse dokumentiert ;)
Antworten