This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Ramdom quote from fmylife.com

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
User avatar
speechles
Revered One
Posts: 1398
Joined: Sat Aug 26, 2006 10:19 pm
Location: emerald triangle, california (coastal redwoods)

Post by speechles »

Sydneybabe wrote:Good day tomekk, can i request if these word FML on last part of the sentence at http://www.fmylife.com/ quotes can trim or hide so that it will not appear on channel trigger.. example like this:

Today, I got a letter from the Navy saying that they accepted my application to join the Navy. I never applied. FML

.. the bold one at the end.. thanks in advance :D
The easiest way to do it is exactly as you've said it, "can trim". So that's how this approach takes it.

Code: Select all

change from: putquick "PRIVMSG $chan :$fm_quote"
change into: putquick "PRIVMSG $chan :[string trimright $fm_quote "FML"]"
S
Sydneybabe
Op
Posts: 106
Joined: Fri Apr 27, 2007 3:31 am
Location: Philippines

Post by Sydneybabe »

thanks a lot speechless :) i change the link into http://www.randomquotes.info/ but the bot on channel says - some problem with data, try again later, sorry. how this random webite quotes work.. thanks a lot in advance for the help :D
User avatar
tomekk
Master
Posts: 255
Joined: Fri Nov 28, 2008 11:35 am
Location: Oswiecim / Poland
Contact:

Post by tomekk »

Sydneybabe wrote:thanks a lot speechless :) i change the link into http://www.randomquotes.info/ but the bot on channel says - some problem with data, try again later, sorry. how this random webite quotes work.. thanks a lot in advance for the help :D
its normal, this script works only for http://www.fmylife.com/random

@Globulus
"Pulls a random quote from http://www.fmylife.com/. Initial release by Tomekk modified to fix cooldown that is not working."

thanks for pro advertisement ;-P
You could insert a link to this topic ;)

cheers
a
addaitech
Voice
Posts: 4
Joined: Wed Jun 17, 2009 9:39 am

Post by addaitech »

any idea as to why the script will only show the url of the quote and not the quote itself??

!09:48:20! (lennox\) !fml
!09:48:22! <morphix> --| http://www.fmylife.com/miscellaneous/1363713
User avatar
tomekk
Master
Posts: 255
Joined: Fri Nov 28, 2008 11:35 am
Location: Oswiecim / Poland
Contact:

Post by tomekk »

the source code of fmylife has changed ;)
a
addaitech
Voice
Posts: 4
Joined: Wed Jun 17, 2009 9:39 am

Post by addaitech »

tomekk wrote:the source code of fmylife has changed ;)
any idea on how i change the script to work again?
User avatar
tomekk
Master
Posts: 255
Joined: Fri Nov 28, 2008 11:35 am
Location: Oswiecim / Poland
Contact:

Post by tomekk »

You have to look into fmylife page source code and fix the regexps in TCL script.
I can't fix that because if i do this, i will stuck with this script to end of my days.

I hate scripts based on parsing web source code, it was my last.

cheers !
User avatar
username
Op
Posts: 196
Joined: Thu Oct 06, 2005 9:20 am
Location: Russian Federation, Podolsk
Contact:

Post by username »

What mean \1 in

Code: Select all

# 1st quote
   regsub -nocase {.*<div\s+class=\"post\"><p>(.+)</p><div\s+class=\"date\"\s+style=\"float:left;\">.*} $fm_data {\1} fm_data

If we use regsub it mean we change

Code: Select all

.*<div\s+class=\"post\"><p>(.+)</p><div\s+class=\"date\"\s+style=\"float:left;\">.*
to \1 or Im wrong?
Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/
User avatar
tomekk
Master
Posts: 255
Joined: Fri Nov 28, 2008 11:35 am
Location: Oswiecim / Poland
Contact:

Post by tomekk »

simple example:

string: <mark> something here lala </mark>

Code: Select all

#!/usr/bin/tclsh

set mystr "<mark> something here lala </mark>"

regsub {<mark>(.+)<\/mark>} $mystr {\1} mystr

puts $mystr
output:
[tomekk@zonk]:/home# ./zonk.tcl
something here lala
its all based on simple regular expressions and regexp 'groups', there is many info about this in the internet

bye
User avatar
wac
Halfop
Posts: 80
Joined: Sun Dec 10, 2006 1:22 am
Location: in my cardboard box

Post by wac »

I'd do it if I knew how but since I don't so I can't, shame the only person that currently does won't help. :cry:
I see j00!
a
addaitech
Voice
Posts: 4
Joined: Wed Jun 17, 2009 9:39 am

Post by addaitech »

wac wrote:I'd do it if I knew how but since I don't so I can't, shame the only person that currently does won't help. :cry:
I dont know how to do it either.
User avatar
username
Op
Posts: 196
Joined: Thu Oct 06, 2005 9:20 am
Location: Russian Federation, Podolsk
Contact:

Post by username »

Take it.

Code: Select all

# Author: tomekk
# e-mail:  tomekk/@/oswiecim/./eu/./org
# home page: http://tomekk.oswiecim.eu.org/
#
# Version 0.3
#
# New html tag by username@forum.egghelp.org
#
# This file is Copyrighted under the GNU Public License.
# http://www.gnu.org/copyleft/gpl.html

# channels for !fmylife
set fmylife_channels {#egghelp #erotic}

# time between use !fmylife (seconds)
set fmylife_reuse_time 20

# auto query
# 0 - off, 1 - on
set fmylife_auto_query 0

# set auto query interval (minutes)
set fmylife_auto_interval 10

###########################################################
bind pub - !fmylife fm_main_proc

package require http

proc get_fmylife { } {
   set f_http_uagent "Opera/9.61 (Windows i686; U; en) Presto/2.1.1"
   set f_http_token [http::config -useragent $f_http_uagent]
   if {[catch {set f_http_token [::http::geturl "http://www.fmylife.com/random" -timeout 15000]}]} {
      return "error"
   } {
      return [http::data $f_http_token]
   }
}

set fmylife_reuse 1

proc fmylife_timer { } {
   global fmylife_auto_interval
   fm_auto_proc

   if {[string match *fmylife_timer* [timers]] != 1} {
      timer $fmylife_auto_interval fmylife_timer
   }
}

proc fm_auto_proc { } {
   global fmylife_channels

   set fm_quote ""
        set fm_quote [get_fmylife]

   if {($fm_quote == "error") || ($fm_quote == "")} {
      putlog "auto-quote-fmylife: problem with connection"
      return
   }

   foreach fm_each_chan [split $fmylife_channels] {
      if {$fm_each_chan != ""} {
         set fm_each_chan [string trim $fm_each_chan]

         if {[botonchan $fm_each_chan]} {
             fmylife_print $fm_quote $fm_each_chan
         }
      }
   }
}

proc fm_main_proc { nick uhost hand chan arg } {
   global fmylife_channels fmylife_reuse fmylife_reuse_time

   if {[expr [clock seconds] - $fmylife_reuse] <= $fmylife_reuse_time} {
      putquick "PRIVMSG $chan :$nick: to fast, sorry"
      return
   }

   if {[lsearch $fmylife_channels $chan] == -1} {
      return
   }

   set fm_quote ""
   set fm_quote [get_fmylife]

   if {($fm_quote == "error") || ($fm_quote == "")} {
      putquick "PRIVMSG $chan :problem with connection, try again later, sorry"
      return
        }

   fmylife_print $fm_quote $chan
}

proc fmylife_print { fm_data fm_chan } {
   global fmylife_reuse

   set fm_link ""

   regsub -all -nocase "\n" $fm_data "" fm_data
   regsub -all -nocase "\r" $fm_data "" fm_data
   regsub -all -nocase "\t" $fm_data "" fm_data

   # 1st quote
   regsub -nocase {.*<div\s+class=\"clear\"><\/div><\/div>(.+)<div\s+class=\"more\">.*} $fm_data {\1} fm_data

   # 1st link
   regsub -nocase {.*<a\s+href=\"([a-z0-9\/ ]+)\"\s+class="fmllink">.*} $fm_data {\1} fm_link

   # del rest of links from quote
   regsub -all -nocase {<a\s+href=\"[a-z0-9\/ ]+\"\s+class=\"fmllink\">} $fm_data "" fm_data

   # voting result
   regsub -nocase {.*f\*\*\*ed<\/a>\s+(.+)<\/span>\s+-.*} $fm_data {\1} fm_fckd
   regsub -nocase {.*one<\/a>\s+(.+)<\/span>.*} $fm_data {\1} fm_dsrv

   # date and name
   regsub -nocase {.*<p\s+style=\"margin-top\:2px\;\">(.+)\s+-\s+<a\s+class=\"liencat\".*} $fm_data {\1} fm_date
   regsub -nocase {.*<a\s+class=\"liencat\"\s+href="/[a-z0-9\/ ]+\">[a-z0-9\/ ]+<\/a>\s+-\s+by\s+(.*?)\s+-\s+<a\s+href=\"\/country\/.*} $fm_data {\1} fm_name
   regsub -all -nocase {<a href="/gender/woman" class="light">} $fm_name "" fm_name
   regsub -all -nocase {<a href="/gender/man" class="light">} $fm_name "" fm_name
   regsub -all -nocase {</a>} $fm_name "" fm_name

   # fml text
   regsub -nocase {.*<div\s+class=\"post\"><p>(.*?)<div\s+class=\"date\">.*} $fm_data {\1} fm_data

   # the rest of useless tags
   regsub -all -nocase "<\/a>" $fm_data "" fm_data
   regsub -all -nocase "<\/p>" $fm_data "" fm_data
   regsub -all -nocase "<\/div>" $fm_data "" fm_data

   set fm_link "http://www.fmylife.com$fm_link"

   if {[regexp -nocase {http:\/\/www\.fmylife\.com[a-z0-9\/ ]+} $fm_link]} {
      putquick "PRIVMSG $fm_chan :\00310$fm_data"
      putquick "PRIVMSG $fm_chan :\00314I agree, your life is f***ed \00303$fm_fckd \00314- you deserved that one \00303$fm_dsrv\00314. Added \00303$fm_date \00314by $fm_name\00303."
      putquick "PRIVMSG $fm_chan :\00304--| \00312\037$fm_link\037\003"
      set fmylife_reuse [clock seconds]
   } {
      putquick "PRIVMSG $fm_chan :some problem with data, try again later, sorry"
   }
}

if {$fmylife_auto_query != 0} {
   if {[string match *fmylife_timer* [timers]] != 1} {
      timer $fmylife_auto_interval fmylife_timer
   }
}

putlog "fmylife-quote.tcl ver 0.2 by tomekk loaded" 
[00:58:38] <@tvrsh> !fmylife
[00:58:53] <@bionic> Today, a boy I'm not even dating took it upon himself to tell me that we would never work out. Via text message. FML
[00:58:53] <@bionic> I agree, your life is f***ed (11593) - you deserved that one (672). Added On 01/31/2009 at 11:52am by wowza.
[00:58:53] <@bionic> --| http://www.fmylife.com/love/4103
Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/
a
addaitech
Voice
Posts: 4
Joined: Wed Jun 17, 2009 9:39 am

Post by addaitech »

username wrote:Take it.

Code: Select all

# Author: tomekk
# e-mail:  tomekk/@/oswiecim/./eu/./org
# home page: http://tomekk.oswiecim.eu.org/
#
# Version 0.3
#
# New html tag by username@forum.egghelp.org
#
# This file is Copyrighted under the GNU Public License.
# http://www.gnu.org/copyleft/gpl.html

# channels for !fmylife
set fmylife_channels {#egghelp #erotic}

# time between use !fmylife (seconds)
set fmylife_reuse_time 20

# auto query
# 0 - off, 1 - on
set fmylife_auto_query 0

# set auto query interval (minutes)
set fmylife_auto_interval 10

###########################################################
bind pub - !fmylife fm_main_proc

package require http

proc get_fmylife { } {
   set f_http_uagent "Opera/9.61 (Windows i686; U; en) Presto/2.1.1"
   set f_http_token [http::config -useragent $f_http_uagent]
   if {[catch {set f_http_token [::http::geturl "http://www.fmylife.com/random" -timeout 15000]}]} {
      return "error"
   } {
      return [http::data $f_http_token]
   }
}

set fmylife_reuse 1

proc fmylife_timer { } {
   global fmylife_auto_interval
   fm_auto_proc

   if {[string match *fmylife_timer* [timers]] != 1} {
      timer $fmylife_auto_interval fmylife_timer
   }
}

proc fm_auto_proc { } {
   global fmylife_channels

   set fm_quote ""
        set fm_quote [get_fmylife]

   if {($fm_quote == "error") || ($fm_quote == "")} {
      putlog "auto-quote-fmylife: problem with connection"
      return
   }

   foreach fm_each_chan [split $fmylife_channels] {
      if {$fm_each_chan != ""} {
         set fm_each_chan [string trim $fm_each_chan]

         if {[botonchan $fm_each_chan]} {
             fmylife_print $fm_quote $fm_each_chan
         }
      }
   }
}

proc fm_main_proc { nick uhost hand chan arg } {
   global fmylife_channels fmylife_reuse fmylife_reuse_time

   if {[expr [clock seconds] - $fmylife_reuse] <= $fmylife_reuse_time} {
      putquick "PRIVMSG $chan :$nick: to fast, sorry"
      return
   }

   if {[lsearch $fmylife_channels $chan] == -1} {
      return
   }

   set fm_quote ""
   set fm_quote [get_fmylife]

   if {($fm_quote == "error") || ($fm_quote == "")} {
      putquick "PRIVMSG $chan :problem with connection, try again later, sorry"
      return
        }

   fmylife_print $fm_quote $chan
}

proc fmylife_print { fm_data fm_chan } {
   global fmylife_reuse

   set fm_link ""

   regsub -all -nocase "\n" $fm_data "" fm_data
   regsub -all -nocase "\r" $fm_data "" fm_data
   regsub -all -nocase "\t" $fm_data "" fm_data

   # 1st quote
   regsub -nocase {.*<div\s+class="clear"><\/div><\/div>(.+)<div\s+class="more">.*} $fm_data {\1} fm_data

   # 1st link
   regsub -nocase {.*<a\s+href="([a-z0-9\/ ]+)"\s+class="fmllink">.*} $fm_data {\1} fm_link

   # del rest of links from quote
   regsub -all -nocase {<a\s+href="[a-z0-9\/ ]+"\s+class="fmllink">} $fm_data "" fm_data

   # voting result
   regsub -nocase {.*f\*\*\*ed<\/a>\s+(.+)<\/span>\s+-.*} $fm_data {\1} fm_fckd
   regsub -nocase {.*one<\/a>\s+(.+)<\/span>.*} $fm_data {\1} fm_dsrv

   # date and name
   regsub -nocase {.*<p\s+style="margin-top\:2px\;">(.+)\s+-\s+<a\s+class="liencat".*} $fm_data {\1} fm_date
   regsub -nocase {.*<a\s+class="liencat"\s+href="/[a-z0-9\/ ]+">[a-z0-9\/ ]+<\/a>\s+-\s+by\s+(.*?)\s+-\s+<a\s+href="\/country\/.*} $fm_data {\1} fm_name
   regsub -all -nocase {<a href="/gender/woman" class="light">} $fm_name "" fm_name
   regsub -all -nocase {<a href="/gender/man" class="light">} $fm_name "" fm_name
   regsub -all -nocase {</a>} $fm_name "" fm_name

   # fml text
   regsub -nocase {.*<div\s+class="post"><p>(.*?)<div\s+class="date">.*} $fm_data {\1} fm_data

   # the rest of useless tags
   regsub -all -nocase "<\/a>" $fm_data "" fm_data
   regsub -all -nocase "<\/p>" $fm_data "" fm_data
   regsub -all -nocase "<\/div>" $fm_data "" fm_data

   set fm_link "http://www.fmylife.com$fm_link"

   if {[regexp -nocase {http:\/\/www\.fmylife\.com[a-z0-9\/ ]+} $fm_link]} {
      putquick "PRIVMSG $fm_chan :\00310$fm_data"
      putquick "PRIVMSG $fm_chan :\00314I agree, your life is f***ed \00303$fm_fckd \00314- you deserved that one \00303$fm_dsrv\00314. Added \00303$fm_date \00314by $fm_name\00303."
      putquick "PRIVMSG $fm_chan :\00304--| \00312\037$fm_link\037\003"
      set fmylife_reuse [clock seconds]
   } {
      putquick "PRIVMSG $fm_chan :some problem with data, try again later, sorry"
   }
}

if {$fmylife_auto_query != 0} {
   if {[string match *fmylife_timer* [timers]] != 1} {
      timer $fmylife_auto_interval fmylife_timer
   }
}

putlog "fmylife-quote.tcl ver 0.2 by tomekk loaded" 
[00:58:38] <@tvrsh> !fmylife
[00:58:53] <@bionic> Today, a boy I'm not even dating took it upon himself to tell me that we would never work out. Via text message. FML
[00:58:53] <@bionic> I agree, your life is f***ed (11593) - you deserved that one (672). Added On 01/31/2009 at 11:52am by wowza.
[00:58:53] <@bionic> --| http://www.fmylife.com/love/4103
Thanks alot, appreciate it.
User avatar
wac
Halfop
Posts: 80
Joined: Sun Dec 10, 2006 1:22 am
Location: in my cardboard box

Post by wac »

username wrote:Take it.
Thanks, much appreciated!
I see j00!
User avatar
username
Op
Posts: 196
Joined: Thu Oct 06, 2005 9:20 am
Location: Russian Federation, Podolsk
Contact:

Post by username »

I add wordwrap proc from user`s post http://forum.egghelp.org/viewtopic.php?p=81741#81741
Download new version here http://www.egghelp.ru/file.php?id=460
Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/
Post Reply