Auteur Topic: iconv op DS414  (gelezen 1521 keer)

Online Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 65
  • -Ontvangen: 1247
  • Berichten: 6.882
Re: iconv op DS414
« Reactie #45 Gepost op: 01 augustus 2017, 08:50:39 »
@mvveelen

Piconv wordt als onderdeel van pearl geïnstalleerd, ik dacht dat ik dat al gezegd had, maar na teruglezen was het alleen een vage opmerking dat het een pearl script is, maar gelukkig is dat opgelost met behulp van Birdy.

Ik zal vanavond even kijken of ik een klein python scriptje voor je kan maken die door de bestanden heen ploegt en ze omzet naar ISO-8859-1 als ze utf-8 zijn.
Dus inclusief een test of ze wel utf-8 zijn.
Je PCH kan wel met utf-8 omgaan maar alleen als het een utf-sig is (ofwel er moet een BOM inzitten), maar ISO-8859-1 doet hij zeker.
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #46 Gepost op: 01 augustus 2017, 08:54:05 »
Dat zou super zijn, want conversie op conversie gaat dus mis :)

En dat het een Perl script is dat had ik wel gezien, maar nooit de link gelegd dat Perl niet (meer) op de Syno stond.....
  • Mijn Synology: DS414

Gemarkeerd als beste antwoord door mvveelen Gepost op 03 augustus 2017, 13:05:25

Online Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 65
  • -Ontvangen: 1247
  • Berichten: 6.882
Re: iconv op DS414
« Reactie #47 Gepost op: 02 augustus 2017, 18:45:04 »
Hier het beloofde python script.
Het converteert bestanden met de extensie .srt die utf-8 zijn naar bestanden die utf-8 sig zijn.
Als het goed is zal de PCH deze correct weergeven.

Het script gaat ervan uit dat je python van de SynoCommunity gebruikt.
Het heeft de python module chardet nodig.
Als die er niet blijkt te zijn (script geeft dat aan) dan installeer je dat met "pip install chardet"
Als je dit bestand opslaat als converteer,py dan kun je het starten met "./converteer.py"

Code: (python) [Selecteer]
#!/volume1/@appstore/python/bin/python

import os,io
try:
    import chardet
except:
    print 'No chardet module found in Python library'
    print 'Instal chardet with the command : pip install chardet'
    quit()

        ################################################################################
        # This programm convert utf-8 files with extension .srt to utf-8-sig
        # 'path' is the location of the subtitle files
        #################################################################################
path = '/volume1/Media/SERIES'
path = 'D:\\\\sync\\Test'

Sub_ext = '.srt'
Bck_ext = '.old'

try:
    os.path.isdir(path)
except Exception as error:
    print error
    quit()

    # Here starts the folder scanning
print 'The following files are converted:'
print ''
for dirname, dirnames, filenames in os.walk(path):
    for filename in filenames:
        root,ext = os.path.splitext(filename)
        if ext.lower() == Sub_ext:
            with open(dirname + os.sep + filename, 'rb') as fp_in:
                rawdata = fp_in.read()
            SubCodec = chardet.detect(rawdata)['encoding']
            if SubCodec == 'utf-8':
                UnicodeData = rawdata.decode('utf-8', errors='replace')
                try:
                    os.rename(dirname + os.sep + filename, dirname + os.sep + root + Bck_ext)
                except Exception as error:
                    print error
                try:
                    with io.open(dirname + os.sep + filename, mode='w',encoding='utf-8',newline='') as fp_out:
                        fp_out.write(u'\uFEFF')
                        fp_out.write(UnicodeData)
                except Exception as error:
                    print error
                print filename
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #48 Gepost op: 02 augustus 2017, 18:46:41 »
Ga ik mee testen, ik zal eerst het pad beperken voordat er iets mis gaat :)
  • Mijn Synology: DS414

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #49 Gepost op: 02 augustus 2017, 18:52:02 »
Hmmmm.....moet ik nog iets extra's doen?

root@DiskStation:/volume1/web# ./convert.py
No chardet module found in Python library
Instal chardet with the command : pip install chardet
root@DiskStation:/volume1/web# pip install chardet
Requirement already satisfied: chardet in /usr/lib/python2.7/site-packages
root@DiskStation:/volume1/web# ./convert.py
No chardet module found in Python library
Instal chardet with the command : pip install chardet
root@DiskStation:/volume1/web#
  • Mijn Synology: DS414

Online Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 65
  • -Ontvangen: 1247
  • Berichten: 6.882
Re: iconv op DS414
« Reactie #50 Gepost op: 02 augustus 2017, 18:53:13 »
Je hebt een andere python versie.
Pas even de eerste regel van het script aan zodat hij naar jouw python versie verwijst.

Wordt dan:
#!/usr/bin/env python
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #51 Gepost op: 02 augustus 2017, 19:05:07 »
Done.

Het script draait even en spuugt dan dit uit:

root@DiskStation:/volume1/web# ./convert.py
The following files are converted:

root@DiskStation:/volume1/web#

De .srt files in de test-map zijn onaangeroerd. Heb nog eens een berg .srt files erheen gezet, maar geen enkel bestand wordt iets mee gedaan?
  • Mijn Synology: DS414

Online Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 65
  • -Ontvangen: 1247
  • Berichten: 6.882
Re: iconv op DS414
« Reactie #52 Gepost op: 02 augustus 2017, 20:44:50 »
Ik zie net dat er nog een regel teveel instaat.
De variable path wordt twee keer toegekend.
Die tweede regel moet weg, dat was voor mij om te testen.
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #53 Gepost op: 02 augustus 2017, 22:36:41 »
Dat was het idd :)

Heb 'm net 1 keer laten draaien: 10 bestanden omgezet. Daarna nog een keer: 0. Dus dat lijkt goed te gaan. Morgen even testen of ze ook daadwerkelijk goed herkend worden door de PCH en dan kan ik de hele Media/SERIES folder laten scannen :D
  • Mijn Synology: DS414

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #54 Gepost op: 03 augustus 2017, 10:01:38 »
Lijkt allemaal goed te gaan. Als ik een aflevering afspeelde met een oude .srt, dan was de encoding volgens de PCH "English". Na de conversie staat er netjes "UTF-8". Ik ben nu alle .srt files aan het omzetten, tenminste.....jouw script.

Voor de zekerheid laat je .old bestanden wegschrijven. Hoe kan ik die het makkelijkst straks allemaal verwijderen uit de map /volume1/Media?
  • Mijn Synology: DS414

Online Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 65
  • -Ontvangen: 1247
  • Berichten: 6.882
Re: iconv op DS414
« Reactie #55 Gepost op: 03 augustus 2017, 13:00:40 »
Met filestation.
Ga in de folder staan.
Vul in het search veld *.old in
Selecteer alles
Rechtsklikken en voor delete kiezen.

Ik wil ook wel iets inbouwen dat het script ze meteen verwijdert of eventueel naar een andere folder verplaatst?
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline mvveelen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 8
  • Berichten: 111
Re: iconv op DS414
« Reactie #56 Gepost op: 03 augustus 2017, 13:05:14 »
Zo simpel, doh..... Ik zat aan een commando voor op de cli te denken. Dit is nog makkelijker inderdaad.

Nee hoor, het script is prima zo en mocht iemand anders er gebruik van maken dan is het misschien wel goed als er backup files worden gemaakt.

Dankjewel !
  • Mijn Synology: DS414

Online Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 65
  • -Ontvangen: 1247
  • Berichten: 6.882
Re: iconv op DS414
« Reactie #57 Gepost op: 03 augustus 2017, 13:15:58 »
Fijn dat het werkt.
Overigens is het wel specifiek een PCH issue, want utf-8 met BOM wordt bijna niet meer gebruikt.
Vandaar dat mkvtools die BOM ook niet in het bestand schrijft.

De ellende komt overigens van windows met z'n krankzinnige code pages.
De hele wereld is allang over op utf-8 waarin je elk willekeurig karakter (dus ook het chinese alfabet) kunt weergeven en in de windows wereld moet je weten welke codepage gebruikt is toen het bestand werd weggeschreven en nergens in het bestand noch in een attribute van het bestand staat welke codepage dat was.
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116


 

DS212J.... vervangen door DS414 of DS212J uitbreiden met een DS214+

Gestart door danjeBoard NAS hardware vragen

Reacties: 4
Gelezen: 1374
Laatste bericht 11 november 2014, 12:03:20
door Robert Koopman
Welke schijfopstelling DS414 voor snelste reparatie/uitpaktijden?

Gestart door AcefolderBoard NAS hardware vragen

Reacties: 38
Gelezen: 5785
Laatste bericht 08 maart 2014, 20:07:19
door Robbedoes
Verkocht [TKA] DS414 nieuw in originele doos (niet gebruikt)

Gestart door uitmaurikBoard Verkocht

Reacties: 1
Gelezen: 1039
Laatste bericht 03 augustus 2014, 20:15:40
door uitmaurik
NAS DS414 niet meer zichtbaar in Windows Verkenner (Win7.0)

Gestart door Arnold2015Board Windows

Reacties: 11
Gelezen: 2386
Laatste bericht 17 januari 2015, 12:13:54
door Birdy
Eigen domein en de wens subdomeinen te gebruiken om DS414 te bereiken

Gestart door mvveelenBoard DDNS / Quick Connect / EZ-Internet / Portforwarding

Reacties: 10
Gelezen: 1860
Laatste bericht 31 maart 2015, 18:41:52
door mvveelen
Synology-Forum.nl is een Nederlands gebruikersforum en staat volledig los van het merk Synology.