Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Script vom englischen ins deustche übersetzt

Dieses Thema im Forum "Eggdrop Scripting" wurde erstellt von Tappi112, 2. April 2013.

  1. Tappi112

    Tappi112 Member

    Ich habe dieses Script gefunden, aber da die ganzen Ausgaben in englisch waren habe ich es ins deutsche übersetzt.
    Es wird ein Ordner dbase mit einer Datei statistics erstellt und wenn ich den Eggdrop rehashe, dann steht da auch was drin.
    Nur es wird bei der Eingabe von !stat, !top10 oder auch !top20 nichts ausgegeben. Als es in englisch war ging alles, dann hatte ich schon mal geschaut das ich einiges ins deutsche bekomme und es ging immer noch alles.
    Bis ich dann bei den Ausgaben das englische Wort Statistics ins deutsche übersetzte (Statistik) dann bekam ich in der Partyline die Meldung:
    Tcl error [::statistics::save]: couldn't open "scripts/dbase/statistics": permission denied

    Also wieder alles rausgenommen, den dbase Ordner samt Datei gelöscht und alles von vorne gemacht, nun habe ich wieder alles in deutsch (siehe Code) nur es kommt keine Ausgabe im Chat, auch in der Partyline kommen keine Meldungen.....

    Nun bin ich echt ratlos :confused:

    Oder hat das Script sich etwa noch woanders abgespeichert wo ich es auch noch löschen muss, um es dann noch einmal neu zu installieren?

    Bin für jede Hilfe dankbar, zumal ich echt keinen Schimmer habe, wieso es auf einmal nicht mehr geht. Weil ich habe ja nichts gemacht als die englischen Ausgabetexte ins deutsche verfasst und halt die trigger von $ zu !
    Weil ich finde !stat besser als $stat ;)

    Achja in der statistics Datei, welche im Ordner dbase drin ist, steht wie gesagt was drin
    channel:#tappi id:*!*Tappi@feuerwehrlive.de value:1364862867 5 21 92 0 Tappi|Hg



    Hier nun der Code:
    Code (Text):
    Quelltext kopieren
    1.  
    2. #  type ".chanset <chan> +stat" on the partyline to ativate the script for a specific channel.
    3. #  commands: !stat <nick> - shows information about you or a nick. (works only for other nicks when you are op on a channel)
    4. #            !top10 <Smilies|Woerter|Zeilen|Buchstaben> - shows the top10 chatters, default option is Woerter
    5. #            !top20 <Smilies|Woerter|Zeilen|Buchstaben> - same as !top10 but with places 11-20
    6.  
    7. namespace eval statistics {
    8. # Storage file
    9.   variable storage {scripts/dbase/statistics}
    10.  
    11. # Kill unused entries after x days
    12.   variable killafter 30
    13.  
    14. # Command trigger
    15.   variable trigger {!}
    16.  
    17. # smiley regex (only touch this, if you really know, what you are doing!)
    18.   variable smileyregex {(:|8|;)(-|o)?(>|<|D|O|o|\)|\(|\]|\[|P|p|\||\\|/)}
    19.  
    20.   bind PUB   -|-  !{trigger}stat   [namespace current]::spew
    21.   bind PUB   -|-  !{trigger}top10  [namespace current]::toplist
    22.   bind PUB   -|-  !{trigger}top20  [namespace current]::toplist
    23.   bind PUBM  -|-  *                [namespace current]::monitor
    24.   bind CTCP  -|-  ACTION           [namespace current]::ctcp
    25.   bind EVNT  -|-  save             [namespace current]::save
    26.   bind TIME  -|-  {00 * * * *}     [namespace current]::cleanupdb
    27.  
    28.   setudef flag stat
    29.  
    30.   namespace export spew top10 toplist save load monitor
    31. }
    32.  
    33. proc statistics::ctcp {nickname hostname handle target keyword arguments} {
    34.   if {[validchan $target]} {
    35.     monitor $nickname $hostname $handle $target $arguments
    36.   }
    37.   return 0
    38. }
    39.  
    40. proc statistics::monitor {nickname hostname handle channel arguments} {
    41.   variable data
    42.   variable smileyregex
    43.   if {([isbotnick $nickname]) || (![channel get $channel stat])} {
    44.     return 0
    45.   }
    46.   set hostname [maskhost *!$hostname]
    47.   regsub -all -- {\002|\003[\d]{0,2}(,[\d]{0,2})?|\006|\007|\017|\026|\037|\n|\t} $arguments {} arguments
    48.   set added(Woerter) [regexp -all -- {\S+} $arguments]
    49.   set added(Buchstaben) [regexp -all -- {\S} $arguments]
    50.   if {[string length $smileyregex] >= 1} {
    51.     set added(Smilies) [regexp -all -- $smileyregex $arguments]
    52.   } else {
    53.     set added(Smilies) 0
    54.   }
    55.   if {(![info exists data($channel,$hostname)])} {
    56.     set data($channel,$hostname) "0 0 0 0 0 NULL"
    57.   }
    58.   regexp -- {^(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\S+)$} $data($channel,$hostname) -> lastseen Zeilen Woerter Buchstaben Smilies lastnick
    59.   incr Zeilen 1
    60.   incr Woerter $added(Woerter)
    61.   incr Buchstaben $added(Buchstaben)
    62.   incr Smilies $added(Smilies)
    63.   set data($channel,$hostname) "[unixtime] $Zeilen $Woerter $Buchstaben $Smilies $nickname"
    64. }
    65.  
    66. proc statistics::spew {nickname hostname handle channel arguments} {
    67.   variable data
    68.   if {(![channel get $channel stat])} {
    69.     return 0
    70.   }
    71.   if {([isop $nickname $channel]) && ([string length $arguments] >= 1)} {
    72.     set target [lindex [clean $arguments] 0]
    73.   } else {
    74.     set target $nickname
    75.   }
    76.   if {![onchan $target $channel]} {
    77.     putserv "PRIVMSG $channel :\[Statistik - Unbekannter User \002$target\002\]"
    78.     return 0
    79.   }
    80.   set targethost [maskhost *![getchanhost $target $channel]]
    81.  
    82.   if {[info exists data($channel,$targethost)]} {
    83.     regexp -- {^(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\S+)$} $data($channel,$targethost) -> lastseen Zeilen Woerter Buchstaben Smilies lastnick
    84.     set wpl [round [expr ($Woerter / $Zeilen.)]]
    85.     set spl [round [expr ($Smilies / $Zeilen.)]]
    86.     set lpw [round [expr ($Buchstaben / $Woerter.)]]
    87.     putserv "PRIVMSG $channel :\[Statistik - \002$target\002 schrieb \002$Zeilen\002 Zeilen, \002$Woerter\002 Woerter und \002$Buchstaben\002 Buchstaben , sowie \002$Smilies\002 Smilies\]"
    88.   } else {
    89.     putserv "PRIVMSG $channel :\[Statistik - Noch keine Informationen über den User \002$target\002\]"
    90.   }
    91. }
    92.  
    93. proc statistics::top {channel number {type ""}} {
    94.   variable data
    95.   set statistics {}
    96.   switch $type {
    97.     {Zeilen} {set index 1}
    98.     {Buchstaben} {set index 3}
    99.     {Smilies} {set index 4}
    100.     {default} {set index 2 ; set type "Woerter"}
    101.   }
    102.   foreach {user stats} [array get data $channel,*] {
    103.     set stats [clean $stats]
    104.     lappend statistics "[lindex [clean $stats] 5] [lindex $stats $index]"
    105.   }
    106.   set statistics [lrange [lsort -integer -decreasing -index 1 [lsort -unique -index 0 [lsort -integer -increasing -index 1 $statistics]]] [expr $number - 10] [expr $number - 1]]
    107.   if {$statistics == ""} {
    108.     return "\[Top$number $type - Noch keine Information für \002$channel\002\]"
    109.   }
    110.   set output "\[Top$number $type -"
    111.   for {set i 0} {$i < [llength $statistics]} {incr i 1} {
    112.     set item [lindex $statistics $i]
    113.     append output "\x20[expr $i+$number-9]: \002[join [lindex [clean $item] 0] { }]\002 ([lindex $item 1])"
    114.   }
    115.   append output "\]"
    116.   return $output
    117. }
    118.  
    119. proc statistics::toplist {nickname hostname handle channel arguments} {
    120.   global lastbind
    121.   if {(![channel get $channel stat])} {
    122.     return 0
    123.   }
    124.   set arguments [clean $arguments]
    125.   set key [lindex $arguments 0]
    126.   if {![regexp -- {^.*?([0-9]+)$} $lastbind -> number]} {
    127.     return 0
    128.   }
    129.   if {![regexp -nocase -- {^(Woerter|Buchstaben|Smilies|Zeilen|)$} $key]} {
    130.     putserv "PRIVMSG $channel :\[Statistik - Unbekannter Befehl: \002$key\002, valid options are \002Buchstaben\002, \002Zeilen\002, \002Smilies\002 and \002Woerter\002\]"
    131.     return 0
    132.   }
    133.   putserv "PRIVMSG $channel :[top $channel $number [string tolower $key]]"
    134. }
    135.  
    136. proc statistics::cleanupdb {args} {
    137.   variable killafter
    138.   variable data
    139.   set killed 0
    140.   foreach {item} [array names data] {
    141.     set lastseen [lindex [clean $data($item)] 0]
    142.     set expire [expr 60 * 60 * 24 * $killafter]
    143.     if {[expr [unixtime] - $lastseen] >= $expire} {
    144.       incr killed
    145.       unset data($item)
    146.     }
    147.   }
    148.   return $killed
    149. }
    150.  
    151. proc statistics::load {} {
    152.   variable data
    153.   variable storage
    154.   regexp -- {^(\S+/)?.*$} $storage -> directory
    155.   if {[string length $directory] >= 1} {
    156.     if {![file isdirectory $directory]} {
    157.       file mkdir $directory
    158.     }
    159.   }
    160.   if {![file exists $storage]} {
    161.     return 0
    162.   }
    163.   if {[array exists data]} {
    164.     array unset data
    165.   }
    166.   set file [open $storage r]
    167.   while {![eof $file]} {
    168.     gets $file line
    169.     if {[regexp -nocase -- {^channel:(\S+)\sid:(\S+)\svalue:(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\d+)\s(\S+)$} $line -> channel hostname lastseen Zeilen Woerter Buchstaben Smilies lastnick]} {
    170.       set data($channel,$hostname) "$lastseen $Zeilen $Woerter $Buchstaben $Smilies $lastnick"
    171.     }
    172.   }
    173.   close $file
    174. }
    175.  
    176. proc statistics::save {args} {
    177.   variable data
    178.   variable storage
    179.   set file [open $storage w]
    180.   foreach chan_user [array names data] {
    181.     regexp {^(\S+),(\S+)$} $chan_user -> channel user
    182.     puts $file "channel:$channel id:$user value:$data($chan_user)"
    183.   }
    184.   close $file
    185. }
    186.  
    187. proc statistics::clean {i} {
    188.   regsub -all -- \\\\ $i \\\\\\\\ i
    189.   regsub -all -- \\\[ $i \\\\\[ i
    190.   regsub -all -- \\\] $i \\\\\] i
    191.   regsub -all -- \\\} $i \\\\\} i
    192.   regsub -all -- \\\{ $i \\\\\{ i
    193.   return $i
    194. }
    195.  
    196. proc statistics::round {num} {
    197.   if {![string match "*.*" $num]} {
    198.     return $num\.0
    199.   }
    200.   if {![regexp -- {^(\d+?)\.(\d+)$} $num -> primary secondary]} {
    201.     error "syntax error in expression '$num'"
    202.   }
    203.   set secondary [expr round([string index $secondary 0].[string range $secondary 1 end])]
    204.   return [expr {($secondary == 10) ? ($primary+1.0) : "$primary.$secondary"}]
    205. }
    206.  
    207. statistics::load
    208.  
    209. putlog "Statistics Script geladen"
    210.  
  2. coding-board

    coding-board Member

    Werbung
  3. Tappi112

    Tappi112 Member

    Also ich komm da irgendwie nicht drüber weg, das was ich geändert habe, hat doch im Grunde mit der Funktion nichts mit zu tun. Wieso geht das dann nicht?

    Selbst wenn ich das original sprich das reine englische nehme, geht garnichts :mauer:
  4. Tappi112

    Tappi112 Member

    Ok nach tagelangem hin und her testen habe ich es nun hinbekommen bzw. rausgefunden


    bind PUB -|- !{trigger}stat [namespace current]::spew
    bind PUB -|- !{trigger}top10 [namespace current]::toplist
    bind PUB -|- !{trigger}top20 [namespace current]::toplist

    Diese ! hätten als $ bleiben müssen :mauer:

    Es geht nun alles und komplett in Deutsch :)
    Also erledigt
Die Seite wird geladen...
Ähnliche Themen - Script englischen ins Forum Datum
Ist es sinnvoll ECMAScript 5 noch zu lernen. JavaScript Donnerstag um 11:48 Uhr
JavaScript DApps (Blockchain, Smart Contract ..) JavaScript 10. Mai 2018
Javascript Array Problem/Frage JavaScript 19. April 2018
JavaScript Frontend Engineer (w/m) Stellenangebote (Agenturen) 19. April 2018
JavaScript Sonstige Programmiersprachen 7. April 2018