ubuntuusers.de

Mit welcher Scriptsprache am besten prefs.js von Firefox Absatzweise bearbeiten?

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

Drill_Sgt._Hartman

Anmeldungsdatum:
22. Oktober 2010

Beiträge: 349

Hallo,

damit man mein Problem und was ich vorhabe, versteht ist hier ein Link zu einem Beitrag aus dem Ursprungsthread, was in einem anderen Forum ist. Ausführen würde ich das Script wahrscheinlich per rc.local. So sieht die prefs.js je nach Sitzung etwa aus (habe aus Datenschutzgründen darüber hinaus Absätze entfernt und Satzteile durch '[Datenschutz]' ersetzt): http://pastecode.org/index.php/view/raw/19cc25ef

Ich denke das es am einfachsten ist, dass ich 'user_pref(' für 'user_pref(' durchgehe und jedes mall prüfe ob vor 'user_pref(' (Hex) D und (Hex) A steht, um sich so gehen das es ein 'user_pref(' eines neuen Absatzeintrages ist. Wenn wahr, würde ich innerhalb dieses Absatzeintrages nach 'maonoscript' suchen. Käme das nicht vor, würde ich die Schleife einfach weiter laufen lassen, damit er zum nächsten Absatzeintrag kommt. Falls 'maonoscript' aber vorkommt, würde ich die erste und die letzte Position des Absatzeintrages in einem Array abspeichern. Wenn die Schleife durchgelaufen ist, also er beim Ende der Datei angelangt ist, würde ich dann einfach alle Von-Bis Bereiche, die in dem Array abgespeichert sind, löschen. Also auch eine Schleifenabarbeitung des Array. Abschließend würde ich nun die Absatzeinträge, die für NoScript sind, und von einem alten Zustand stammend in einer Datei abgespeichert sind, in die prefs.js kopieren.

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Mir ist ehrlich gesagt nicht klar, was du genau machen willst.

Drill_Sgt._Hartman

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2010

Beiträge: 349

diesch schrieb:

Mir ist ehrlich gesagt nicht klar, was du genau machen willst.

Steht doch in dem Thread, wo auch dieser Beitrag ist. Ich will einfach, dass die Einstellungen von NoScript, einem Add-on für Firefox, die leider in der prefs.js gespeichert werden, für jede neue ubuntu-Sitzung zurückgesetzt sind. Da aber ein verweisen auf eine andere Datei nicht möglich scheint, muss ich Teile der prefs.js zurücksetzten.

Systemkritiker

Anmeldungsdatum:
2. Januar 2011

Beiträge: 110

Wohnort: Schweiz

Wenn ich dich richtig verstanden habe, will du so etwas:

perl -e 'while(<>){print if(m/^user_pref\(/&&m/maonoscript/)}' <prefs_old.js >>prefs_new.js

Das darf man aber nicht so verstehen, dass perl die geeignetste Scriptsprache dafür wäre.

Mit grep geht das genauso gut:

<prefs_old.js grep '^user_pref' | grep 'maonoscript' >>prefs_new.js

Beste Grüsse, Systemkritiker

Drill_Sgt._Hartman

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2010

Beiträge: 349

Habe es jetzt mit Python gemacht.

riffraff

Avatar von riffraff

Anmeldungsdatum:
1. Oktober 2006

Beiträge: 486

Wohnort: Im kühlen Norden

Drill Sgt. Hartman schrieb:

Habe es jetzt mit Python gemacht.

😕 Und wie?

Ich finde es immer absolut(!) unhöflich, wenn man Fragen stellt - dann gibt jemand Hinweise, Rat, Tipps....und der TS schreibt dann nur noch..."Habe die Lösung gefunden", oder "Habe es mit Python gemacht"

Es ist sehr egoistisch, wenn man zwar die Hilfe und das KnowHow von anderen "anzapfen" kann, aber selbst niemanden mit seinen eigenen Lösungen hilft! Das geht völlig entgegen dem Gedanken einer Community und der von Ubuntu erst recht!

Drill_Sgt._Hartman

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2010

Beiträge: 349

Sagt nichts gegen meine Kommentare, wenn ihr beschwören wollt dass Deutschland, anamnestische Sprachentwicklungsstörung freundlich ist!

 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
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import os, subprocess, sys

for i in range(len(sys.argv[0]) - 1, 0, -1):
	if sys.argv[0][i] == '/':
		currentPath = sys.argv[0][0:i+1]
		break

snapshot = currentPath + 'prefs.js.{vbox-snapshot-vdi-id}' # Zustand der "prefs.js" zum Zeitpunkt der Snapshot Erstellung
generationFile = currentPath + 'prefs' # Zur Wiederherstellung des obigen Einstellungszustand (ausgenommen die Einstellungen für "NoScript") und der neuen NoScript-Einstellungen der letzten Sitzung.
firefoxPrefs = currentPath + 'prefs.js' # In der Sitzung geltende Firefox-Einstellungen

# Kopiere die Zeilen von snapshot, die kein "noscript" (Beachtung der Groß- Kleinschreibung wird umgangen) enthalten, nach generationFile
streSpSt = open(snapshot, 'r')
streGF = open(generationFile, 'w')
for line in streSpSt:
	if line.lower().find('noscript') == -1:
		streGF.write(line)
streGF.close()
streSpSt.close()

# Kopiere von firefoxPrefs, der letzten Firefox-Sitzung, die Zeilen die "noscript" (Beachtung der Groß- Kleinschreibung wird umgangen) enthalten, nach generationFile
streLastSession = open(firefoxPrefs, 'r')
streGF = open(generationFile, 'a')
for line in streLastSession:
	if line.lower().find('noscript') > -1:
		streGF.write(line)
streGF.close()
streLastSession.close()

# Löschen von firefoxPrefs der letzten Firefox-Sitzung und generationFile zu firefoxPrefs umbenennen, um die neuen generierten Einstellungen, Firefox wirksam zu machen
os.remove(firefoxPrefs)
os.rename(generationFile, firefoxPrefs)

# Starten von Firefox
subprocess.Popen('firefox', shell=True)
Antworten |