[Google Chrome Extension] Thread Configuration Version 0.1

06/07/2013 09:59 dannie98#31
Good Job!
06/07/2013 10:10 xyNNNNNN#32
freut mich zu hören.

Das kommende Userscript wird dann plattformunabhängiger und noch eleganter implementiert. Des Weiteren werden noch ein paar zusätzliche Funktionen hinzugefügt.

Habt ihr noch weitere Ideen, als die bis zurzeit vorgeschlagenen?
06/07/2013 10:35 Ennea#33
Quote:
Originally Posted by Cr4nkSt4r View Post
Ich bin momentan nur bei'm Abgleich
Abgleich womit? Was gibt's da abzugleichen? :confused:
06/07/2013 10:58 Cr4nkSt4r#34
Ganz einfach, 1. fehlten viele IDs und Foren, 2. stimmten manche IDs nicht mehr mit den aktuellen überein ;)

Hier die neuste Version, da sind die IDs mit drin:
[Only registered and activated users can see links. Click Here To Register...]

Getestet mit:
- Firefox v21.0
- Google Chrome v27.0.1453.94 m


Bilder v0.6.7.131035:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Changelog v0.6.7.131035:
  • GUI angepasst mit den Oberkategorien in der Auswahlliste

Bilder Änderungen v0.6.7.131129:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Changelog v0.6.7.131129:
  • Anpassung der Credits und leichteres Einfügen ermöglicht

Bilder Änderungen v0.6.7.131551:
[Only registered and activated users can see links. Click Here To Register...]
Changelog v0.6.7.131551:
  • Neue Funktionen hinzugefügt
    • Toggle user signatures
    • Toggle posted thanks
    • Toggle user postbars
06/07/2013 15:55 Ennea#35
Da gibt's ja eigentlich nichts abzugleichen. Ich würde dir sowieso vorschlagen, das HTML dafür dynamisch zu generieren und die IDs und entsprechenden Namen der Foren in einem Array unterzubringen. Dann brauchst du immer nur das Array zu aktualisieren, falls sich da was ändert. Für die IDs hab ich mal ein paar Zeilen Python geschrieben:
Code:
from urllib2 import urlopen
from re import findall

# get board index HTML
try:
  u = urlopen("http://www.elitepvpers.com/forum/", None, 10)
except:
  print "Connection timed out"
  exit()

source = u.read()
u.close()


# patterns for getting forum ids
pat1 = r'<td class="alt1Active".*?id="f(\d+)">\s+.*?<div>\s+.*<a href=.*?strong>(.+?)</strong>' # forums
pat2 = r'<td.*?>\s*<img .*? id="forum_statusicon_(\d+)".*?>\s*<a href=.*?>(.+?)</a>' # sub forums


# write forum ids and names to files
f = open("epvp_forum_ids.txt", "w+")
for r in findall(pat1, source):
  f.write(r[0] + " : " + r[1].replace("&", "&") + "\n")

f.close()

f = open("epvp_subforum_ids.txt", "w+")
for r in findall(pat2, source):
  f.write(r[0] + " : " + r[1].replace("&", "&") + "\n")

f.close()
Legt die IDs und Namen für Foren und für Subforen in entsprechenden Dateien ab.
06/07/2013 16:03 Cr4nkSt4r#36
Ich habe mir das ganze mit PHP gebastelt, an Python habe ich dabei nie gedacht, da meine PHP-Klassen die ich für meine Projekte geschrieben haben eh schön crawlen können, da können sie mir auch die IDs raus suchen ;)
Naja, mir ging es nur darum zu vergleichen, was in der anderen Liste fehlt, nur um das einfach zu wissen ;)

Auch stört mich die Generierung von dem HTML momentan nicht, denn auch das machen mir meine PHP-Klassen ;)
Hatte bisher einfach nur nicht den Elan es dann im JS generieren zu lassen :P
Ich mache eig. relativ wenig von Hand wenn es um wiederkehrende Prozesse geht, da lasse ich schön den Rechner für mich arbeiten, also keine Sorge, ich bin faul und überanstrenge mich nicht oder verblase wertvolle Ressourcen ^^

Aber danke, Python muss in meiner Sammlung langsam auch größer werden, kann man immer mal gebrauchen :)
Und deine Info bez. Arrays im JS, das wird natürlich umgesetzt, steht nur nicht an 1. Stelle momentan, aber ich kann es netter Weise ja weiter vor schieben :P


[EDIT]
So, für jeden der vll. selber etwas anpassen will oder für spätere eigenständige Änderungen der Liste, hier kurz nen PHP Code, meinen Crawler-Code wird denke ich mal nicht viel für manche bringen:
PHP Code:
<?php
$optgroupOn 
false;
$zeilen file('list.txt');
$text '';
$counter 1;
$anz count($zeilen);
foreach (
$zeilen as $zeile) {
    if(
substr($zeile01) == '#') {
      if(
$optgroupOn == true) {
        
$text .= htmlentities('+\' </optgroup> \'');
        
$text .= '<br />';
        
$optgroupOn false;
      }
      
$text .= htmlentities(preg_replace('/#(.*)/si','+\' <optgroup label="$1"> \'',$zeile));
      
$text .= '<br />';
      
$optgroupOn true;
    } else {
      
$text .= htmlentities(preg_replace('/(.*)=(.*)/si','+\' <option value="$2" id="$2">$1</option> \'',$zeile));
      
$text .= '<br />';
    }
    if(
$optgroupOn == true && $counter == $anz) {
      
$text .= htmlentities('+\' </optgroup> \'');
      
$text .= '<br />';
      
$optgroupOn false;
    }
    
$counter++;
}
$text preg_replace("#(\r|\n)#"''$text); 
echo 
$text;
?>
06/08/2013 01:18 Afrozilla#37
Quote:
Originally Posted by xyNNNNNN View Post
Könnte das auch noch gerne als Userscript umsetzen, um es plattformunabhängig zu machen. ;)
Quote:
Originally Posted by xyNNNNNN View Post
Das kommende Userscript wird dann plattformunabhängiger und noch eleganter implementiert. Des Weiteren werden noch ein paar zusätzliche Funktionen hinzugefügt.
Endlich. Ich will es ganz normal für FF verwenden können. :D
06/08/2013 12:25 Cr4nkSt4r#38
Quote:
Originally Posted by Afrozilla View Post
Endlich. Ich will es ganz normal für FF verwenden können. :D
Dann lad es dir doch runter ;)
[Only registered and activated users can see links. Click Here To Register...]
06/08/2013 12:42 anonymous-f4h279#39
Habt ihr die Möglichkeit das Script auf Opera anzupassen?
Es wird auf Opera nicht geladen, ansonsten muss ich wohl FF nutzen.
06/08/2013 14:01 Ennea#40
Liegt daran, dass Opera die @require Statements nicht unterstützt. Du kannst versuchen, die beiden Scripts, die damit eingebunden werden, einfach mit in das Script zu kopieren, nach die "// ==/UserScript==" Zeile.

CrankStar: Warum du das GM Value Zeug benutzt, ist mir eh nicht so ganz klar. Wie wär's stattdessen mit Local Storage?

Edit: Ach ja, und das mit dem "My Posts" Link und der User ID, das hatte ich bei mir nur so gemacht, weil das eh nur zwei Zeilen waren. Du solltest die User ID direkt in die Variable speichern, damit du nicht überall, wo du die verwendest (falls das später noch Verwendung findet) den Substring Kram einsetzen musst:
Code:
var uID = $("#userbar li:first-child a").attr("href").match(/\/\d+-/);
uID = uID[0].substring(1, uID[0].length - 1);
06/08/2013 14:04 Cr4nkSt4r#41
Die Möglichkeit an sich schon, wenn sich auch wer gerne die Zeit nehmen möchte kann er dies gerne machen :P
Das Problem bei Opera ist einfach, dass es
1. Nicht GreasemonkeyScripte zu 100% unterstützt und somit das speichern von Variablen nicht so ohne weiteres möglich ist, muss man ein Workaround schaffen
2. Man auch nicht einfach über @include andere Scripte einbinden kann sondern auch da wieder eine Funktion schreiben muss die dies macht

Opera ist für Userscripte die etwas komplexer werden und vor allem Variablen Domainübergreifend speichern müssen, nicht die erste Wahl, auch nicht mit "violent-monkey", da auch dieses AddOn keine 100%ige Emulation von Greasemonkey hin bekommt.

Also wer Lust hat kann gerne das Script für Opera um schreiben, bzw. jQuery und die Emulations-Funktion der GM_ Values einfach oben dran packen, dann sollte Opera es auch gebacken bekommen ^^


PS: Das Script wird schon geladen, wenn du die JS-Fehlerkonsole einschaltest wirst du auch die Fehlermeldungen bekommen bez. undefinierter Funktionen und/oder Variablen ^^



Warum die GM_ Values, ganz einfach, ich habe dem TS relativ zügig einfach eine Vorlage geboten auf deren Grundgerüst aufgebaut werden kann.
Ich habe täglich zu arbeiten und kann mich dann nicht mit komplexeren Scripten auseinander setzen.
Ich hätte auch gleich 3.000 Zeilen Code zusammen schreiben können, wenn die Zeit da wäre.
Es sollte ja nur ein fixes import in ein Userscript werden. Auch ist GM_ nicht gerade das schnellste wenn man mehr Variablen speichern will, aber für den Anfang ausreichend.
Wie gesagt, wenn wer zu viel Zeit hat kann daran ja herum gebastelt werden wie man will, aber als Vorlage sollte es alle male dienen.

Und wenn man später Dinge mehrmals verwendet, klar sollte man dann eine kürzere Schreibweise bevorzugen, aber wie schon gesagt, es ist eine Vorlage, welche dazu auch läuft und benutzt werden kann.
Weiterentwicklung ist ja jedem selbst gestattet ;)



[EDIT]
So, extra für dich Ennea :P
[Only registered and activated users can see links. Click Here To Register...]

Changelog v0.6.8.131440:
  • Umstieg von den "GM_"-Values auf "localStorage"
  • @require wurde entfernt
  • Kompatibilität daher auch unter Opera gegeben

Erfolgreich getestet unter:
  • Google Chrome Version 27.0.1453.94 m
  • Opera 12.10
06/08/2013 16:00 Ennea#42
Na, ist ja nicht "für mich". Das war einfach konstruktive Kritik am Script. Ich find's super, dass du dich da so daran beteiligst. Wenn man das entsprechend erweitert könnte das mal ganz hilfreich werden. Die 4chan Extension hat's ja zum Beispiel auch recht weit gebracht ;)
06/08/2013 16:29 Cr4nkSt4r#43
Ja, aber extra für dich jetzt schon ^^
Man könnte auch sagen, für alle Opera User und dich :P

Aber ich glaube so wie es gerade ist, wird es unter dem FF nicht rennen, da jQuery nicht fertig geladen ist bevor das Script an fängt.
Werde ich später noch einmal testen ^^

Und warum sich nicht an etwas beteiligen was man für sinnvoll erachtet :P
Bei Gelegenheit wird sich da bestimmt noch einiges ändern, vll. trifft man sich ja auch irgendwo zum Informationsaustausch o.Ä.

Und Kritik, vor allem so konstruktive wie von dir, ist natürlich immer gerne gesehen, versuche es ja auch so schnell wie möglich um zu setzen.
Wäre halt schön wenn man mit dem TS einmal ein Paar Dinge durch quatschen könnte ^^


[EDIT]

Changelog v0.6.8.131644:
  • Workaround für jQuery (temporär)

Erfolgreich getestet unter:
  • Google Chrome Version 27.0.1453.94 m
  • Firefox 18.0.2 und Firefox 21.0
  • Opera 12.10

DL Link des Userscript's für Firefox, Opera und Chrome:
[Only registered and activated users can see links. Click Here To Register...]
06/08/2013 18:34 anonymous-f4h279#44
Hm, passiert noch immer nichts auf Opera.
Na gut immerhin wird die Extended Shoutbox von Walter Sobchak geladen.

Werde wohl in nächster Zeit einfach auf FF umsteigen.
06/08/2013 19:14 Cr4nkSt4r#45
Quote:
Originally Posted by Drewfire View Post
Hm, passiert noch immer nichts auf Opera.
Na gut immerhin wird die Extended Shoutbox von Walter Sobchak geladen.

Werde wohl in nächster Zeit einfach auf FF umsteigen.
Welche Version von Opera nutzt du?
Hast du auch schon das AddOn von Opera benutzt? ([Only registered and activated users can see links. Click Here To Register...])

[EDIT]
habe es gerade ohne violent-monkey probiert, und es funktioniert.
Ich gehe davon aus dass du weis twie man Userscripte einfügt, darum versuch das Script im Anhang ;)