ubuntuusers.de

Synchronisation von TING, dem Hörstift von Brockhaus

Status: Gelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

fledlesuppa

Anmeldungsdatum:
23. November 2011

Beiträge: Zähle...

Liebe Ubuntu Gemeinde!

Der Brockhaus Verlag hat einen Hörstift entwickelt: TING http://www.ting.eu/de/was_ist_ting_/. Dieser Stift wurde für Kinderbücher gemacht und soll Kindern akustisch Bilder im Buch untermalen. Er ladet automatisch die benötigten MP3 Dateien aus dem Internet herunter. Je nach Buch werden unterschiedliche Dateien heruntergeladen. Kauft man ein neues TING-Buch muss man zu Hause die erforderlichen MP3 Files auf den Stift laden.

Nach Rücksprache mit dem TING-Support existiert keine Möglichkeit diesen Stift mit Ubuntu zu synchronisieren. Ziel wäre es, dass Ubuntu es schafft diesen Stift nach Anstecken des USB Anschlusses mit dem Server zu verbinden. Gibt es Erfahrungen von euch zu diesem Thema? Womöglich würde eine Freigabe im Ubuntu System ausreichen. Vielen Dank für eure Antworten!

Lisa

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

Hi

Auf der verlinkten Seite steht 'TING kann Audioinhalte mehrerer Bücher speichern und bei Bedarf abspielen - unabhängig vom Computer und Internet.'

Liest sich für mich, daß der Stift als quasi-USBStick daher kommt, also nur MP3s drauf geschaufelt werden sollen.

Hast Du einen Link (oder sowas) für ein Buch, also, wo der Stift sich den Inhalt (wohl unter Win?) selbst runter lädt?

Kann normal nicht sooo kompliziert sein *denk*

MfG

Zwerchn4se

Anmeldungsdatum:
25. Dezember 2011

Beiträge: Zähle...

Hallihallo! Ich bin leidtragender des Weihnachtschaos bei ting. Der Server ist überlastet. Nun hat ting einen alternativen Download eingerichtet. Netter Nebeneffekt: Auch von meinem Ubuntusystem aus kann ich ganz bequem den Stift mit neuen Büchern bestücken 👍 . Hoffentlich bleibt der alternative Downloadlink auch nach Weihnachten bestehen, dann muss ich nicht mehr ans olle Windows.

Ihr findet den Link auf ting.eu unter Faq's und Support, Downloads. Er lautet: http://85.214.112.69/ting-downloads/

Wie in den Faqs beschrieben sucht ihr das von euch benötigte Buch raus und ladet die drei Dateien dazu runter. Die kopiert ihr dann auf euren ting-Stift in das $ting Verzeichnis. (Der ting-Stift wird ja als Usb-Laufwerk gemountet)

Falls ting auf die glorreiche Idee kommen sollte den alternativen Link nach Weihnachten wieder aus dem Netz zu nehmen schreibt bitte alle an den Support das er ggf. wieder aufgeschaltet wird. uns Linuxnutzern kommt der mächtig entgegen!

So bleibt mir nur noch allen ein frohes Fest zu wünschen! 😊

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

Hi

Vll. wäre es eine Idee, dem Support von dem Ting-Stift genau das mitzuteilen, daß durch den alternativen Server die 'nicht existierende Möglichkeit' - also den Stift mit Ubuntu zu synchronisieren, hier funktioniert.

Weiß zwar nicht, wie werbewirksam ein Ubuntu-Logo auf der Ting-Seite daher kommt, aber das müssen dann eh die Leute dort entscheiden.

MfG

muellni

Anmeldungsdatum:
2. April 2013

Beiträge: Zähle...

Ich habe gerade der Software des TING smart bei der Arbeit unter Windows zugeschaut. Mit ein wenig Handarbeit bekommt man die Bücher unter jedem OS aus dem Netz draufgespielt.

Im Folgenden meine ich mit tingpfad das $ting-Verzeichnis auf dem gemounteten Flashdrive, bei mir also bspw. /media/muellni/Ting/$ting

Hat man eine neues Buch gescannt, wird man aufgefordert, den Stift mit dem PC zu verbinden. Die ID des neuen Buchs befindet sich in der Datei tingpfad/TBD.TXT. Im Folgenden verwende ich die 05094, welche zur TING Gebrauchsanweisung gehört.

Zunächst lädt man die Buchbeschreibung herunter:

wget http://system.ting.eu/book-files/get-description/id/05094/area/en -O tingpfad/05094_en.txt

Dann folgt das Thumbnailbildchen:

wget http://system.ting.eu/book-files/get/id/05094/area/en/type/thumb -O tingpfad/05094_en.png

Und zuletzt die eigentliche Buchdatei:

wget http://system.ting.eu/book-files/get/id/05094/area/en/type/archive -O tingpfad/05094_en.ouf

Die ID kann man danach aus tingpfad/TBD.TXT löschen. Die Windowssoftware schreibt derzeit ein brauchbares log nach tingpfad/log.inf, für eigene Experimente bestimmt zu gebrauchen.

gerhardmb

Anmeldungsdatum:
30. Dezember 2010

Beiträge: Zähle...

Hi,

Danke für die Downloadanleitung per wget-Befehl. Unter http://system.ting.eu/book-download/ lassen sich übersichtlich die Bücher nach Verlagen durchforsten. Links neben dem Buchtitel steht die Buchnummer. Die Brockhaus Bücher sind übrigens unter wissenmedia zu finden.

Kurzhaardackel

Anmeldungsdatum:
17. August 2014

Beiträge: Zähle...

Hallo, ich muss diesen alten Thread noch einmal aufkochen. Ich versuche derzeit die Anleitung von muellni in ein py-script zu übersetzen. Vielen Dank zunächst für die Hinweise.

Ein Problem habe ich derweil. Da mir ein Windoof derzeit nicht zur Verfügung steht, kann ich keine Logs des Windoof-Progs einsehen. In der Bichbeschreibungsdatei z.B. in der "05094_en.txt" stehen dem MD5-Summen aller zum Buch gehörigen Daten, also die MD5 des Thumbnails (05094_en.png) und der Audiodatei ("05094_en.ouf"). Nun taucht bei einem Buch dort plötzlich ein dritter Eintrag auf – neben FileMD5 und ThumbMD5 noch SciptMD5. Mann muss offensichtlich zu diesem Buch noch einen dritte Datei runterladen. Kann mir jemand sagen, wie die Dateiendung dieser Script-Datei lautet und wo die auf dem Server abgeholt werden muss?

Eine andere Frage: Wie es scheint, steht in den Dateinamen immer das Kürzel "en" für englich, auch wenn es sich um ein deutsch-sprachiges Buch handelt. Ist das immer so? Hat schon einmal jemand Bücher mit "XXXXX_de.txt" auf dem Stick gefunden?

Dank im Voraus!

Kurzhaardackel

Anmeldungsdatum:
17. August 2014

Beiträge: 4

Ich antworte mir und der Nachwelt selber: die Script-Dateien gibt es unter http://system.ting.eu/book-files/get/id/XXXXX/area/en/type/script Die Dateien heissen XXXXX_en.src, wobei XXXXX die Buch-ID darstellt.

Wie erwähnt, nicht jedes Buch benötigt ein Script-File. Ich gehe daher wie folgt vor: - BookId aus der TBD.TXT auslesen - Description-File (XXXXX_en.txt) runterladen - aus Description-File die ThumbMD5-, FileMD5- und ggf ScriptMD5-Hashes auslesen - PNG, OUF und ggf. SRC-Datei runterladen und MD5-Summe überprüfen. - fertsch

Achtung: wenn man den Inhalt der TBD.TXT nicht wieder löscht, steht die ID des neuen Buches in der nächsten Zeile. Man kann das nutzen, um zunächste alle neuen Bücher anzutingen und kann dann die Dateien für alle Bücher in einem Rutsch runterladen.

Offene Punkte: -gibt es auch Bücher mit dem Area-Code anders als "_en" ? -werden die Script-Files wirklich als .src auf dem Stift abgelegt oder nennt das Windows-Prog sie nochmals um, ich kann das nicht prüfen -die Description-Datei enthält eine Zeile "URL:", die bei allen mir vorliegenden Büchern jedoch leer war. Es deutet aber darauf hin, dass es Bücher geben könnte, deren Audio-Dateien von einem anderen Server gezogen werden müssten

howil001

Anmeldungsdatum:
14. September 2014

Beiträge: Zähle...

Hallo Zusammen, Hallo Kurzhaardackel,

Ich habe hier auch noch ein nettes bash script gefunden. Ich habe es aber noch nicht zum Laufen gebracht.

http://uli.popps.org/2013/12/ting-und-linux/

Hier ist TBT.TXT aud TBD.TXT zu ändern! Auch wird bei mir unter Kubuntu nicht direkt nach \media sondern \media\#Benutzername# gemountet.

Grundsätzlich bin ich eher ein Python und kein Bash "Jünger" und wäre daher an deinem Code interessiert.

lg HoWil

Kurzhaardackel

Anmeldungsdatum:
17. August 2014

Beiträge: 4

Folks, anbei mein Spaghetti-Code. Natürlich unkommentiert! (echte Künstler kommentieren ihre Kunst nicht! ☺

Nur so viel: - MountedTingPath muss entsprechend deines Mount-Points angepasst werden. - Das Script liest alles IDs aus der TBD.TXT, und überprüft, ob zu den IDs die Dateien bereits vorhanden sind. Wenn ja, wird die MD5-Summer überprüft, wenn nein wird das File gezogen und im Anschluss die MD5-Summe geprüft.

Der von howil001 gepostete Link ignoriert ebefalls die SRC-Scriptfiles.

TODO: Habe letztens zum ersten mal den Ting an einen Win-Rechner gesteckt. Die nach meiner Methode geladenen Bücher wurden alles von der Software als vorhanden dargestellt. (wenn ich mich mal selber loben darf). Ein Buch wurde jedoch von der Software aktualisiert! Woran die Software gemerkt hat, dass zu einem Buch eine neuere Version verfügbar ist, ist mir derzeit unklar. Ich überlasse den Job anderen, dies herauszufinden. Evt lädt er zu jedem Buch die XXXXX_en.txt neu und findet darin andere MD5-Summen?????

<da die Zeilenumbrüche entfernt werden, kann ich den Code nicht direkt posten>

ting.py.txt (3.3 KiB)
Download ting.py.txt

howil001

Anmeldungsdatum:
14. September 2014

Beiträge: 5

Vielen Dank Kurzhaardackel!

Es ist ja doch sehr umfangreich geworden. 👍

Bei Gelegenheit werde ich eine Abfrage einbauen wohin der Ting gemountet wurde. Bei mir liegt er nämlich unter /media/#Benutzername#/Ting .

lg HoWil

Kurzhaardackel

Anmeldungsdatum:
17. August 2014

Beiträge: 4

Ja, bitte weiterentwickeln. Bei mir werkelt ein Debian Wheezy, deshalb sicherlich die abweichenden Pfade.

Freut mich zu hören, dass der Code offenbar auch funktioniert.

Darf ich fragen, war es auch eine Einschulung, die dich dazu trieb, dich mit dem Ting zu beschäftigen?

howil001

Anmeldungsdatum:
14. September 2014

Beiträge: 5

Ob der Code funktioniert wird das nächste Buch zeigen 😊 .

Meine wissbegierigen Kids sind der Grund für den Ting. Leider bemerkte ich erst als wir in hatten, dass das Ting-Ding nur unter Win. läuft.

Da aus der Meldung vom Ting-Support eine Linux oder Android App bereitzustellen nichts wurde muss man es eben selbst in die Hand nehmen.

howil001

Anmeldungsdatum:
14. September 2014

Beiträge: 5

Hallo Zusammen,

Das Script wurde mittlerweile getestet und für 'sehr gut' befunden. Ich habe es um eine Abfrage des Ting-mountpoints erweitert.

Test sind sicherlich noch notwendig!

lg HoWil

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# -*- coding: utf-8 -*-

import urllib
import os
import re
import hashlib
import commands
 
from sys import platform as _platform

# Check linux platform and find mountpoint
if _platform == "linux" or _platform == "linux2":
    # Execute mount command
    mount = commands.getoutput('mount -v')
    lines = mount.split('\n')
    points = map(lambda line: line.split()[2], lines)
    
    # Defining standard mount point    
    MountedTingPath = "/media/Ting/$ting"
    
    # Check all found mount points
    n = -1
    for a in enumerate(points):
        if 'Ting' in a[1]:
            n =a[0]    
            MountedTingPath = a[1]+'/$ting'
            print('Found Ting mounted to "'+MountedTingPath+'"')

    if n ==-1:
        print('Could not find mounted Ting. Please connect Ting to System.')        

else:
    print('Could not find Linux system!')


#set global parameters
TingURL = "system.ting.eu/book-files"
TingFileTypes = ["Thumb", "File", "Script"]

TingFileDestDict = {}
TingFileDestDict["Thumb"] = MountedTingPath + "/{}_en.png"
TingFileDestDict["File"] = MountedTingPath + "/{}_en.ouf"
TingFileDestDict["Script"] = MountedTingPath + "/{}_en.src"

TingFileSourceDict = {}
TingFileSourceDict["Thumb"] = "http://"+TingURL+"/get/id/{}/area/en/type/thumb"
TingFileSourceDict["File"] = "http://"+TingURL+"/get/id/{}/area/en/type/archive"
TingFileSourceDict["Script"] = "http://"+TingURL+"/get/id/{}/area/en/type/script"


def GetBookIDs(TBDFilePath=MountedTingPath+"/TBD.TXT"):
    TBDFile = open(TBDFilePath, "r")
    BookIDs = TBDFile.readlines()
    for i, BookID in enumerate(BookIDs):
        BookIDs[i] = BookID.strip()
    return BookIDs
    
def CheckForBookDesciptionFile(BookIDAsString, TingPath=MountedTingPath):
    BookExists = os.path.exists(TingPath+"/"+BookIDAsString+"_en.txt")
    return BookExists
    
def GetBookMD5Sums(BookID, TingPath=MountedTingPath):
    ResultDict = dict.fromkeys(TingFileTypes)
    
    aFile = open(TingPath+"/"+BookID+"_en.txt")
    Lines = aFile.readlines()
    aFile.close()

    for key in ResultDict.iterkeys():
        for Line in Lines:
            Match = re.findall(key+"MD5: ([0-9,a-f]+)", Line)
            if Match:
                ResultDict[key] = Match[0]
                break
    return ResultDict
    
def CheckForBookFileValid(BookID, FileType, MD5SUM, FileDestDict=TingFileDestDict):
    LocalFilePath = FileDestDict[FileType].format(BookID)
    
    isValid = True
    isValid = isValid and os.path.exists(LocalFilePath)
    
    if isValid:
        md5 = hashlib.md5()
        File = open(LocalFilePath, "r")
        md5.update(File.read())
        isValid = isValid and (MD5SUM == md5.hexdigest())
    print "Book: ", BookID, FileType, MD5SUM, isValid
    return isValid

def GetBookFile(BookID, FileType, FileSourceDict=TingFileSourceDict, FileDestDict=TingFileDestDict):
    LocalFilePath = FileDestDict[FileType].format(BookID)
    FullURL = FileSourceDict[FileType].format(BookID)
    print "Start Download from", FullURL
    urllib.urlretrieve(FullURL, LocalFilePath)
    return
        
    
def GetBookDesciptionFile(BookIDAsString, URL=TingURL, TingPath=MountedTingPath):
    FullURL = "http://"
    FullURL += URL
    FullURL += "/get-description/id/"
    FullURL += BookIDAsString
    FullURL += "/area/en"
    
    LocalFile = TingPath
    LocalFile += "/"
    LocalFile += BookIDAsString
    LocalFile += "_en.txt"

    urllib.urlretrieve(FullURL, LocalFile)
    return

BookIDs = GetBookIDs()
print "Found followings BookIDs for processing:"
print BookIDs

for BookID in BookIDs:
    if not(CheckForBookDesciptionFile(BookID)):
        GetBookDesciptionFile(BookID)
    MD5Sums = GetBookMD5Sums(BookID)
    
    for key, value in MD5Sums.iteritems():
        if value != None:
            if not(CheckForBookFileValid(BookID, key, value)):
                GetBookFile(BookID, key)
                if not(CheckForBookFileValid(BookID, key, value)):
                    print "Error: download failed for Book", BookID, key

print "Job done!"

Bauramichele

Anmeldungsdatum:
22. Mai 2008

Beiträge: 314

Jetzt habe ich nur noch die Fragen: wie setzte ich dieses script ein? warum läuft die "ting.exe" nicht unter wine? Die .exe lässt sich zwar schön öffnen, das Buch (hier KOSMOS) lädt sich auch herunter, nur der Stift reagiert nicht auf die icons und in der Anwendung bleibt das Buch im linken Fenster unter downloads. Liegt es an dem FsUsbService (Bild)?

Bilder
Antworten |