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.

YouTube tcl Edits

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
S
SoUkSoU
Voice
Posts: 13
Joined: Sat Jan 11, 2014 1:35 pm

YouTube tcl Edits

Post by SoUkSoU »

Hello. Im using Youtube tcl version 1.3 from creative

Code: Select all

# YouTube (Eggdrop/Tcl), Version 1.3
#
# (c) creative (QuakeNet - #computerbase), 15. Feb. 2012
#
# This program is free software: you can redistribute it and / or modify it under the
# terms of the GNU General Public License, see http://www.gnu.org/licenses/gpl.html.
#
# Example:
# <bo2000> like her new video https://www.youtu.be/kfVsfOSbJY0
# <eggbert> [Y] Rebecca Black - Friday - Official Music Video, 17.09.2011 (O 1.8)
#
# Notice:
# !youtube (on|off) enables or disables script for active channel (flags "mno" only)

setudef flag youtube

bind pubm - *youtu.be/* YouTube
bind pubm - *youtube.com/watch*v=* YouTube
bind pub mno|mno !youtube YouTube-Settings

proc YouTube {nick host hand chan text} {

	if {[channel get $chan youtube]} {
		set y_api "http://gdata.youtube.com/feeds/api/videos/"
		set y_odf "%d.%m.%Y"

		if {[catch {package require http 2.5}]} {
			putlog "YouTube: package http 2.5 or above required"
		} else {

			if {[regexp -nocase {(^|[ ]{1})(https{0,1}:\/\/(www\.){0,1}|www\.)(youtu\.be\/|youtube\.com\/watch[^ ]{1,}v=)([A-Za-z0-9_-]{11})} $text - - - - - y_vid]} {

				if {[catch {set y_con [::http::geturl $y_api$y_vid -headers [list {GData-Version} {2}] -timeout 5000]}]} {
					putlog "YouTube: connection error (e. g. host not found / reachable)"
				} elseif {[::http::status $y_con] == "ok"} {
					set y_data [::http::data $y_con]
					catch {::http::cleanup $y_con}
				} else {
					putlog "YouTube: connection error (e. g. time out / no data received)"
					catch {::http::cleanup $y_con}
				}

			}

		}

	}

	if {[info exists y_data]} {

		if {[regexp -nocase {<title>(.{1,})<\/title>} $y_data - y_data_t]} {
			set y_data_t [string map -nocase [list {"} {"} {&} {&} {<} {<} {>} {>}] $y_data_t]
			regsub -all -nocase {[ ]{1,}} $y_data_t { } y_data_t
		} else {
			putlog "YouTube: parsing error (<title>, $y_api$y_vid)"
		}

		if {[regexp -nocase {<published>([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.000Z)<\/published>} $y_data - y_data_p]} {
			set y_data_p [clock scan $y_data_p -format %Y-%m-%dT%H:%M:%S.000Z]
			set y_data_p [clock format $y_data_p -format $y_odf]
		} else {
			putlog "YouTube: parsing error (<published>, $y_api$y_vid)"
		}

		if {[regexp -nocase {<gd:rating average='([0-9]{1}\.[0-9]{1,})'} $y_data - y_data_r]} {
			set y_data_r [format %.1f $y_data_r]
			set y_data_r "([encoding convertto utf-8 \u00D8] $y_data_r)"
		} else {
			set y_data_r "([encoding convertto utf-8 \u00D8] NR)"
		}

		if {[info exists y_data_t] && [info exists y_data_p] && [info exists y_data_r]} {
			putserv "privmsg $chan :\[Y\] $y_data_t, $y_data_p $y_data_r"
		}

	}

}

proc YouTube-Settings {nick host hand chan text} {

	if {![channel get $chan youtube] && $text == "on"} {
		catch {channel set $chan +youtube}
		putserv "notice $nick :YouTube: enabled for $chan"
		putlog "YouTube: script enabled (by $nick for $chan)"
	} elseif {[channel get $chan youtube] && $text == "off"} {
		catch {channel set $chan -youtube}
		putserv "notice $nick :YouTube: disabled for $chan"
		putlog "YouTube: script disabled (by $nick for $chan)"
	} else {
		putserv "notice $nick :YouTube: !youtube (on|off) enables or disables script for active channel"
	}

}

putlog "YouTube 1.3 loaded"
I want if someone it's possible to add some more info when a link is grabbing for example:

Code: Select all

[20:37:37] <Jack> http://www.youtube.com/watch?v=3O1_3zBUKM8
[20:37:37] <@m0nika> [Y] Naughty Boy - La La La ft. Sam Smith, 18.04.2013 (Ø 4.8)
to be like this

Code: Select all

[20:37:37] <Jack> http://www.youtube.com/watch?v=3O1_3zBUKM8
[20:37:37] <@m0nika> [[b]Youtube[/b]] Naughty Boy - La La La ft. Sam Smith [b]|[/b] Added: $date [b]|[/b] Uploader: $upload [b]|[/b] Views: $vies [b]|[/b] Likes: $likes - Dislikes: $dislikes
Post Reply