diff --git a/.env.example b/.env.example deleted file mode 100644 index a8f5cc0..0000000 --- a/.env.example +++ /dev/null @@ -1,24 +0,0 @@ -# Bot Name -BOT_NICK=Zeta -BOT_NICKS='Zbot Lambda' -BOT_USERNAME=Zeta -BOT_REALNAME=zeta - -# Bot Channel -BOT_CHANNELS='#flagrun' -BOT_NETWORK=Freenode -BOT_SERVER=chat.freenode.org -BOT_SERVER_PORT=6697 -BOT_SERVER_SSL=true -BOT_MODES='+B' - -# Nickserv Login -SASL_USERNAME=Zeta -SASL_PASSWORD=example - -# Database -DATABASE_URL='postgres://username:password@host/database' - - -# Plugins -WUNDERGROUND_KEY=apikey \ No newline at end of file diff --git a/.gitignore b/.gitignore index e4f7b40..4ac2c9c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,8 @@ .idea tmp/* data/* -lib/locales/porno.yml -lib/*.pstore +log/* +config/config.yml +config/secret.yml +/locales/porno.yml +*.pstore diff --git a/Gemfile b/Gemfile index 4d949ab..77efd9b 100644 --- a/Gemfile +++ b/Gemfile @@ -28,3 +28,5 @@ gem 'god' gem 'activesupport' gem 'haml' +gem 'recursive-open-struct' +gem 'require_all' diff --git a/Gemfile.lock b/Gemfile.lock index a48ff3c..c7457ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,6 +84,8 @@ GEM patron (0.4.18) pg (0.17.1) rack (1.5.2) + recursive-open-struct (0.4.5) + require_all (1.3.2) rest-client (1.6.7) mime-types (>= 1.16) sequel (4.7.0) @@ -126,6 +128,8 @@ DEPENDENCIES mkfifo nokogiri pg + recursive-open-struct + require_all sequel tag_formatter weather-underground diff --git a/config/config.yml.example b/config/config.yml.example new file mode 100644 index 0000000..f8db7e1 --- /dev/null +++ b/config/config.yml.example @@ -0,0 +1,42 @@ +# bot name +bot: + nick: zeta + nicks: 'Bota Botaa' + username: zeta + realname: zeta + +server: + # bot channel + channels: '#flagrun' + network: Darkscience + hostname: irc.darkscience.net + password: + port: 6697 + ssl: true + modes: '+b' + + services: + chanserv: t + nickserv: t + memoserv: f + rpgserv: f + botserv: f + hostserv: f + +sasl: + username: + password: + +plugins: + +admin: + fifo: + mode: 0666 + path: /tmp/bot + +roles: + owner: Liothen + admin: 'me meme mememe' + operator: + halfop: + voice: \ No newline at end of file diff --git a/lib/locales/8ball.yml b/config/initializers/admin.rb similarity index 100% rename from lib/locales/8ball.yml rename to config/initializers/admin.rb diff --git a/config/initializers/config.rb b/config/initializers/config.rb new file mode 100644 index 0000000..80c8ce5 --- /dev/null +++ b/config/initializers/config.rb @@ -0,0 +1 @@ +puts "Loaded init" diff --git a/lib/locales/meme.yml b/config/initializers/helpers.rb similarity index 100% rename from lib/locales/meme.yml rename to config/initializers/helpers.rb diff --git a/lib/locales/quotes.yml b/config/initializers/plugins.rb similarity index 100% rename from lib/locales/quotes.yml rename to config/initializers/plugins.rb diff --git a/config/initializers/users.rb b/config/initializers/users.rb new file mode 100644 index 0000000..e69de29 diff --git a/config/secret.yml.examle b/config/secret.yml.examle new file mode 100644 index 0000000..117b7e6 --- /dev/null +++ b/config/secret.yml.examle @@ -0,0 +1,4 @@ +key: + github: + wolfram: + wunderground: \ No newline at end of file diff --git a/db/migrate/001_create_zusers.rb b/db/migrate/001_create_zusers.rb deleted file mode 100644 index 8547fca..0000000 --- a/db/migrate/001_create_zusers.rb +++ /dev/null @@ -1,18 +0,0 @@ -Sequel.migration do - - change do - create_table(:zusers) do - primary_key :id - - String :nick, null: false - String :user - String :real - String :host - String :role, default: 'nobody' - Boolean :ircop, default: false - - index [:nick, :role, :ircop], unique: true - end - end - -end \ No newline at end of file diff --git a/db/migrate/002_add_authname_zusers.rb b/db/migrate/002_add_authname_zusers.rb deleted file mode 100644 index fa9f942..0000000 --- a/db/migrate/002_add_authname_zusers.rb +++ /dev/null @@ -1,7 +0,0 @@ -Sequel.migration do - change do - alter_table(:zusers) do - add_column :authname, String, default:false - end - end -end \ No newline at end of file diff --git a/irb.rb b/irb.rb deleted file mode 100644 index 818a02c..0000000 --- a/irb.rb +++ /dev/null @@ -1,16 +0,0 @@ -# Required Libraries -require 'libxml' -require 'dotenv' -require 'cinch' -require 'open-uri' -require 'nokogiri' -require 'json' - -# Load Enviromental Variables -Dotenv.load - -# Load Cinch -require_relative 'lib/core/admin' -require_relative 'lib/core/models' -require_relative 'lib/core/plugins' -require_relative 'lib/core/helpers' \ No newline at end of file diff --git a/lib/admin/user.rb b/lib/admin/user.rb deleted file mode 100644 index be47621..0000000 --- a/lib/admin/user.rb +++ /dev/null @@ -1,116 +0,0 @@ -require_relative '../helpers/check_user' - -module Admin - class UserAdmin - include Cinch::Plugin - - set( - plugin_name: 'UserAdmin', - help: "Bot administrator-only private commands.\nUsage: `?set admin [user]`; `?set op [user] `; `?set hop [user]`; `?set voice [user] `;", - prefix: /^\?/ - ) - - ############### Set Permission - - match /set admin (.+)/, method: :set_admin - def set_admin(m, t) - return unless get_user(m).is_owner? - return m.reply('Who do you want to make an admin?') if t.nil? - u = Zuser.find(nick: t) - if u - return m.reply("#{t} is an owner and cannot be modified") if u.role == :q - u.role = :a - if u.save - DB.disconnect - return m.reply("#{t} is now an Admin.") - else - return m.reply("I was unable to Admin #{t}") - end - else - return m.reply("Couldn't find #{t}") - end - end - - match /set op (.+)/, method: :set_op - def set_op(m, t) - return unless get_user(m).is_admin? - return m.reply('Who do you want to make an Op?') if t.nil? - u = Zuser.find(nick: t) - if u - return m.reply("#{t} is an owner and cannot be modified") if u.role == :q - u.role = :o - if u.save - DB.disconnect - return m.reply("#{t} is now an Op.") - else - return m.reply("I was unable to Op #{t}") - end - else - return m.reply("Couldn't find #{t}") - end - end - - match /set hop (.+)/, method: :set_hop - def set_hop(m, t) - return unless get_user(m).is_op? - return m.reply('Who do you want to make an HalfOp?') if t.nil? - u = Zuser.find(nick: t) - if u - return m.reply("#{t} is an owner and cannot be modified") if u.role == :q - u.role = :h - if u.save - DB.disconnect - return m.reply("#{t} is now an HalfOp.") - else - return m.reply("I was unable to HalfOp #{t}") - end - else - return m.reply("Couldn't find #{t}") - end - end - - match /set voice (.+)/, method: :set_voice - def set_voice(m, t) - return unless get_user(m).is_halfop? - return m.reply('Who do you want to make an Voice?') if t.nil? - u = Zuser.find(nick: t) - if u - return m.reply("#{t} is an owner and cannot be modified") if u.role == :q - u.role = :v - if u.save - DB.disconnect - return m.reply("#{t} is now an Voice.") - else - return m.reply("I was unable to Voice #{t}") - end - else - return m.reply("Couldn't find #{t}") - end - end - - match /set nobody (.+)/, method: :set_nobody - def set_nobody(m, t) - return unless get_user(m).is_halfop? - return m.reply('Who do you want to make an Nobody?') if t.nil? - u = Zuser.find(nick: t) - if u - return m.reply("#{t} is an owner and cannot be modified") if u.role == :q - u.role = false - if u.save - DB.disconnect - return m.reply("#{t} is now an Nobody.") - else - return m.reply("I was unable to Nobody #{t}") - end - else - return m.reply("Couldn't find #{t}") - end - end - - ##################### - - - - ## - end -end \ No newline at end of file diff --git a/lib/cinch.rb b/lib/cinch.rb deleted file mode 100644 index efa92de..0000000 --- a/lib/cinch.rb +++ /dev/null @@ -1,77 +0,0 @@ -bot = Cinch::Bot.new do - configure do |c| - c.nick = ENV['BOT_NICK'] - c.nicks = ENV['BOT_NICKS'].split(' ') - c.user = ENV['BOT_USERNAME'] - c.realname = ENV['BOT_REALNAME'] - c.sasl.username = ENV['SASL_USERNAME'] - c.sasl.password = ENV['SASL_PASSWORD'] - c.server = ENV['BOT_SERVER'] - c.password = ENV['BOT_SERVER_PASSWORD'] - c.port = ENV['BOT_SERVER_PORT'] - c.ssl.use = ENV['BOT_SERVER_SSL'] - - c.modes = ENV['BOT_MODES'].split(' ') - #c.channels = %w{#flagrun #ruby #gentoo #linux} - c.channels = ENV['BOT_CHANNELS'].split(' ') - c.plugins.prefix = /^!/ - - ## Authentication - - - ## Admin Plugins - c.plugins.plugins << Admin::BotAdmin - c.plugins.plugins << Admin::UserAdmin - c.plugins.plugins << Admin::Fifo - c.plugins.plugins << Admin::ChannelAdmin - c.plugins.plugins << Admin::Plugins - - ## Admin Options - c.plugins.options[Admin::Fifo][:path] = File.join(__dir__, '../tmp/bot') - - - ## Plugins - c.plugins.plugins << Cinch::Plugins::Wikipedia - c.plugins.plugins << Cinch::Plugins::Calculate - c.plugins.plugins << Cinch::Plugins::Convert - c.plugins.plugins << Cinch::Plugins::Quotes - c.plugins.plugins << Plugins::UrbanDictionary - c.plugins.plugins << Plugins::Forecast - c.plugins.plugins << Plugins::Attack - c.plugins.plugins << Plugins::Eightball - c.plugins.plugins << Plugins::Fnord - c.plugins.plugins << Plugins::Disdate - c.plugins.plugins << Plugins::JargonFile - c.plugins.plugins << Plugins::Porno - c.plugins.plugins << Plugins::Rainbow - c.plugins.plugins << Plugins::Silly - c.plugins.plugins << Plugins::Vote - c.plugins.plugins << Plugins::RussianRoulette - c.plugins.plugins << Plugins::Macros - c.plugins.plugins << Plugins::Dice - c.plugins.plugins << Plugins::BotInfo - c.plugins.plugins << Plugins::Register - c.plugins.plugins << Plugins::BotHelp - c.plugins.plugins << Plugins::DCC - c.plugins.plugins << Plugins::Movies - - ## Plugins Options - c.plugins.options[Cinch::Plugins::Calculate][:units_path] = '/usr/bin/units' - c.plugins.options[Cinch::Plugins::Convert][:units_path] = '/usr/bin/units' - c.plugins.options[Cinch::Plugins::Quotes][:quotes_file] = File.join(__dir__, 'locales/quotes.yml') - - - - end - - ### Zchatlog - #on :message do |msg| - # if not msg.channel.nil? - # Zchatlog.create(channel: msg.channel.name, time: msg.time, nick: msg.user.nick, msg: msg.message ) - # end - #end - - -end -## Start the bot -bot.start diff --git a/lib/core/admin.rb b/lib/core/admin.rb deleted file mode 100644 index cda61f4..0000000 --- a/lib/core/admin.rb +++ /dev/null @@ -1,5 +0,0 @@ -require_relative '../admin/bot' -require_relative '../admin/channel' -require_relative '../admin/user' -require_relative '../admin/fifo' -require_relative '../admin/plugins' diff --git a/lib/core/helpers.rb b/lib/core/helpers.rb deleted file mode 100644 index ac522f6..0000000 --- a/lib/core/helpers.rb +++ /dev/null @@ -1,5 +0,0 @@ -require_relative '../helpers/check_user' -require_relative '../helpers/is_channel_disabled' -require_relative '../helpers/natural_language' -require_relative '../helpers/stats' -require_relative '../helpers/table_format' \ No newline at end of file diff --git a/lib/core/models.rb b/lib/core/models.rb deleted file mode 100644 index 3ca1790..0000000 --- a/lib/core/models.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'sequel' - -# Connection -DB = Sequel.connect(ENV['DATABASE_URL'], :max_connections => 10 ) - -# Models -require_relative '../models/zquote' -require_relative '../models/zuser' -require_relative '../models/ztell' \ No newline at end of file diff --git a/lib/core/plugins.rb b/lib/core/plugins.rb deleted file mode 100644 index bad78d8..0000000 --- a/lib/core/plugins.rb +++ /dev/null @@ -1,28 +0,0 @@ -# Gems -require 'cinch/plugins/quotes' -require 'cinch-convert' -require 'cinch-calculate' -require 'cinch-wikipedia' -require 'weather-underground' - -# Plugins in directory -require_relative '../plugins/8ball' -require_relative '../plugins/attack' -require_relative '../plugins/botinfo' -require_relative '../plugins/dice' -require_relative '../plugins/discord' -require_relative '../plugins/jargonfile' -require_relative '../plugins/link_info' -require_relative '../plugins/macros' -require_relative '../plugins/porno' -require_relative '../plugins/rainbow' -require_relative '../plugins/russian_roulette' -require_relative '../plugins/silly' -require_relative '../plugins/tell' -require_relative '../plugins/urban' -require_relative '../plugins/register' -require_relative '../plugins/vote' -require_relative '../plugins/weather' -require_relative '../plugins/help' -require_relative '../plugins/dcc' -require_relative '../plugins/movie' \ No newline at end of file diff --git a/lib/helpers/check_user.rb b/lib/helpers/check_user.rb deleted file mode 100644 index d39872e..0000000 --- a/lib/helpers/check_user.rb +++ /dev/null @@ -1,23 +0,0 @@ -module Cinch - module Helpers - # Checks a user's access in the specified channel. - # @param channel [Channel, String] A Channel object or string that is the name of the channel. (i.e. #chat) - # @param user [User] A User object - # @param ignored_members [Array] An array of modes that this method will ignore - # @return [Boolean] Returns True if the user has any channel modes other than the ignored modechars - # @author Mark Seymour/Azure - def check_user(channel, user, ignored_members=nil) - ignored_members ||= [] # If nil, assign an empty array. - users = Channel(channel).users # All users from supplied channel - modes = @bot.irc.isupport["PREFIX"].keys - ignored_members - modes.any? {|mode| users[user].include?(mode)} - end - - def get_user(m) - return false if m.user.authname == nil - user = Zuser.find(nick: m.user.nick) || Zuser.new - DB.disconnect - user - end - end -end \ No newline at end of file diff --git a/lib/locales/porno.yml b/lib/locales/porno.yml deleted file mode 100644 index c205547..0000000 --- a/lib/locales/porno.yml +++ /dev/null @@ -1,2939 +0,0 @@ ---- -- My Horny Teacher -- Playboy's Amateur Girls -- Amateur -- Room Service -- Sexcetera -- Night Calls Live -- Hardcore Partying -- The Truth About Sex -- Doll House -- 'Ass Parade: Threesomes' -- Real Latinas Bang for Cash -- Her Very 1st MILF -- 8 Horny Bad Girls -- Lip Stick Kitty Lickers -- I Popped on Your Mom -- DD Cheatin' Wives -- 12 Inch Teen Addiction 6 -- So Good I Orgasm -- Filthy Freshman Coeds -- Finger Bang Queens -- Sex Party Orgy -- 18 YO Black & Latinas -- She Takes It Like a Pro -- Asian Penetrators -- Taste the Beaver -- 'House Rules: Sorority Edition' -- Barely Legal POV 11 -- Big Black Meat Addicts 3 -- Gym Orgasms -- Office Bangjob -- Playmates! -- Top Ten -- Foursome -- El Mundo de Playboy Profiles -- Bang U -- Playboy's Coeds -- Glamour Girls 3 -- 'Ass Parade 11: World''s Best Butts' -- Bang a Cougar -- 19 N Lovin' Sex -- Wild Wife Swappers -- Taboo Office Sex -- Excellent Booty -- Chocolate MILF Muff -- 18 Year Old Perfect Boobs -- Wives Come Loud -- Girls Who Bang Girls -- Pornstars Like to Suck It! -- Real Moms Do Porn -- Caught on Security Cam -- Authentic Squirters -- Slut Toys, No Boys! -- Study Buddies -- Suck It Dry 8 -- Kinky Stepsisters 2 -- Butt Titans 4 -- Swing -- Casting Online -- Money Talks -- 'Taxi: A Parody' -- Red Headed Sluts 2 -- Moms Bang Teen Couples -- Twisted Sexual Instinct -- Snow White & the 7 Loads -- MILF Invaders -- Gotta Be Those Boobs -- Euro Babes Done Deep -- Sasha Grey and Friends -- Dirty All Star Threeways -- Young Pink & Wet -- Crock of Love -- El Mundo de Playboy -- Asian Cuties -- My Wife, a Teen & Me -- Easy Amsterdam Booty -- She Likes Perverts -- Neighborhood Hotties -- 69 Sexy things 2 Do Before You Die -- Neighborhood Rumors -- Art of Love -- My Neighbor's Hot Daughter -- Interracial Violations -- 'Slutty Maids: Room Sex Service' -- Amateur Sex Parties -- Small Town Bang -- Gangbang MILFs 3 -- 10 Inch Overload -- Look at that Butt! -- Fresh Pink 2 -- Crammin' 13 Crotches -- 10 Huge MILF Jugs -- 18 YO Sex Encounters -- Absolute Amateurs 4 -- Good Girls Gone Slut -- Filthy's Sinoritas -- Chicas Love Black -- Asian Cougars -- Latina Caliente 5 -- Say Hello to Your Mother for Me -- My First Time 3 -- Girls Playing With Girls -- Suckin' Huge Boobs! -- Junior College Dropouts -- Badass! -- Dream Dates -- Girl Talk -- 'Bang Bus: Fuck''d in Public' -- 50 Shades of Kinky Fuck'ing -- Hot Bods & Hard Rods -- Orgasmic Group Frenzy -- Latina Sex Rampage -- Cougar Bang Bonanza -- Make My Hole Sore! -- Innocent Tight Teens -- Poke My Asian Pink! -- Extra Tight Virgins -- Boarding School Beavers -- Campus Beavers -- MILFs Like 'Em Young -- Girls Love Strap-Ons -- Curvy Ethnic Cheeks -- Shove It Down Deep -- Is Your MILF Home 2 -- Big Breasted MILF 15 -- Latina Booty Sweat 9 -- Jenna Haze Bangjobs -- Summer Lovin' -- The Stash -- Naughty Amateur Home Videos -- Coffee Shop Cougars -- A Job for Jenna -- Extreme MILF Ass -- Secret Motel Affairs 2 -- 'Pure 18: Slutty School Girls' -- Welcome to the Sex Party! -- 9 Superb Sexfreaks -- Say Hello to 12 Stiff Inches -- Goo-Drippin' Creampies -- Horny Spanish Flies 7 -- Huge Boobs Sex Party -- She's 19 & Loves Oral! -- Sex Cam Virgins -- Sloppy Wet Sluts -- Coed POV Cam -- Cheeky Brit Sluts -- AZN & Black Girl Butts -- Down Mommy's Throat! -- Feed Her Black Dongs -- Big & Beautiful Breasts 15 -- Phat White Booty 7 -- MILFs Gettin' Boned 5 -- Playboy Shootout -- Boobs, Butts & Beyond -- Adult Stars Close Up -- Dare Dorm -- Dropout Delinquents -- Prom -- 3 Nymphos & a Lucky Guy -- Amateurs Swallow -- Tight Teen Latinas -- Cougars Licking Teens -- Threesomes Boned Hard -- Feel It Throb POV 2 -- 110 Percent Natural DDD -- 110 Percent All Natural DDs -- Hard Black Meat in MILFs 2 -- Dominate Me -- Fresh Teenage Sluts -- Lusty Busty Lesbians -- Almost Too Young -- Filthy Urban Orgasms -- MILFs Love Boners -- 'Not the Cosbys: A Parody' -- My Doctor Swallows -- First Class Butt 6 -- Teens Get Tamed 8 -- Interracial Butt Banging 5 -- Barely Legal Boobies -- Fantasías en Foco -- 'Playboy Trip: Back in Argentina' -- Cheerleader Camp -- Buy a Bride, Part 2 -- Big Boobs and Round Ass -- Virgin Student Bodies -- 100 Percent Face Sitting -- 3Way Juggernauts -- Porn Stars at Home 2 -- 12 Inch Meat Gulpers -- Chica Bubble Butts -- '10 Best: Lez Eat Out' -- 100 Percent Real Sex Tapes -- My Horny Teenage GF -- Finger Bang Orgasms -- MILF Booty Calls -- Fresh Sluts & DDs! -- Trophy Wife Gaggers -- Raincoaters POV 8 -- Sluts in Swimsuits 2012 -- Horny White Babysitter -- Sex With Strangers -- Big D... Tight Fits -- Wet and Wild -- Sextreme Makeover -- Sex Revenger -- Real Coed Sex Tapes -- 'Big Latina Ass: Wet & Spread' -- Fuck My Cheating Wife -- 'Schoolgirls: Study Break Sex' -- All Girl Strap On Sex -- '411: IM Me 4 Sex' -- Interracial Frenzy -- First Time Black Teens -- She Came in My Mouth 2 -- Horny Glam Girls -- Club Jenna's Casting Couch 3 -- Feed Her the Boner -- Chica Booty Banger -- Bang My Black Azz -- Housewives Swallow -- Super Cougar Gina Lynn -- Big Boob Orgy 3 -- Lesbian House Ho's 7 -- Tight Asian Hardcore -- Lesbian Models From Paris -- 'Amateur Nymphos: All New Faces 2' -- Panty Poppin' 4 -- Bangin' Sorority Babes -- 'Wonder Woman: A Parody' -- Cream Covered Ebony Faces -- College Amateur Orgies 2 -- Deviant Booty Babes -- Exotic Asian Honeys -- 100 Percent Perfect Pairs -- Downward Doggy MILFs -- Consulta Erótica -- Cream Pie My Mom -- Butt Up Face Down -- Addicted to Black -- 4 Untainted Beavers -- My Roommate's a Lesbian 3 -- Big Boob Sluts 4 -- Monster Curves 8 -- Soaking Wet Beach Sex -- Cheating Wives Tales 9 -- Happy Ending Sluts -- Amateur Sex 3 -- Addicted to Boobs 4 -- Brunettes Like to Swallow -- 'Adult Stars Close-Up: The Specialists' -- Playboy's Sextreme Makeover -- S.O. Sex -- Ultimate Pamela Anderson -- MILF Lesbian Lessons -- Girls Gone Hardcore -- Filthy Fetish Sex Fests -- Freaky Chicks Love Big Sticks -- Wet Foreign Sex Kittens -- Watch Me Orgasm! -- Bendy Broads -- So Young So Naughty 2 -- First Time With a Brotha -- All Deep in Yo Mama 2 -- Curvy Girl -- Barely Legal Trailer Park Girls -- Amateur Sluts in Training -- Show Us Your Wits -- Finish On My Massive Black Boobs -- Young but I Deep Throat -- Virgins of Eastern Europe -- 18 YOs N Monster Rods -- Dirty Little Club Sluts -- Top Floor Whores -- Cheating Moms 2 -- Toys in Tight Lesbians -- Open Marriage Orgasms -- POV Creampies -- 18 YO Gangbang -- Hoochie Mama Bang -- Mom's First Black Guy -- The Art of Booty -- Totally Busted -- Turn Me On & Get Me Off -- Girl Girl Toy Sex -- Eleven Sex Auditions -- Crazy Huge Boobs -- Banging the Bush 5 -- Pornstar Superheroes -- Wet & Wild Live! Backstage Pass -- Deep Inside Wet Ebony Holes -- Lesbians Get Off! -- Hell in Double D's -- Boners 4 Boobies -- I Swallow on the First Date -- This Ain't the Smurfs XXX -- Jon & Kate Bang Eight -- Mom Likes It Hard -- 100 Percent Eat Out Orgy -- Explode on My Juggs -- All Deep in Yo Mama -- She Can Take All 13 Inches -- 'Dare Dorm 4: College Amateur Orgies' -- Amateur Perverts -- Dirty Blondes -- Booty Shorts -- 'MILF Hunter 11: Mature Wives & Moms' -- Teenage Creamholes -- Mom's a Sex Addict -- Black Suck Faces -- Buy a Bride, Part 1 -- Perfect Young Natural Boobs -- 'Hot Bush: Furry Threesomes' -- Filthy Urban Pervs -- Mom Wants a Footlong -- Slut Training -- Babysitter Auditions 5 -- Coed Penetrators -- 99 Problems but a GILF Ain't One! -- Latin Mommas 2 -- Dripping Wet Sluts -- Sasha's Birthday Orgy -- Housewives Gone Black 12 -- Brea vs. Roxy -- 'Adult Stars Close-Up: The Girl-Girls' -- Cougars With Huge Hooters -- All American Sluts -- The Black and the Beautiful 3.0 -- Latinas Love to Suck -- Big Booty Rollin' -- AB Sex -- Hot Young Swinging Couples -- Bombshells Like It Big! -- New Girls Get Pounded -- Private Calls -- 'All Natural: Double D Breasts' -- Tiny Teen T... -- Arms Tied Legs Spread -- Babysitter Playtime 7 -- 'Money Talks: College Sex & Public Stunts' -- Crashing the Sleazy Sleepover -- 32DD Cougar Bosses -- 10 Hardcore Orgasms -- Teens in Tight Jeans -- Bossy MILFs 3 -- Tour Girls -- Playboy's Girls Of ... -- Stolen Vacation Sex Tapes -- Toe-Tal Penetrations -- Dat Butt Make Me Nut -- Crack Addict 8 -- Playmate of the Year 2012 -- 2 Wet Holes 1 Large Pole -- Do Me Hard! -- Threeway Euro Sex Tour 3 -- Dripping Inside -- Huge Amateur Boobs! -- Filthy 1 Night Stands -- Mama's Butt Cheeks -- 18 YO Gaggers -- Black & Persian Sluts -- MILF Thing 5 -- Big & Juicy ASSets -- Amateur Coeds Stretched Wide 2 -- Young Muffs & Older Men -- I Love Black Sluts -- Teen Casting Couch 11 -- 'Adult Stars Close-Up: Anything Goes' -- Sexo Seguro -- King of Clubs -- School of Sex -- Asian Teens Love Big Mouthfuls -- Cream Pie Explosion -- As Seen on Charlie Sheen -- Sex on a Leash -- Cocoa Lesbian Coeds -- Interracial Wife Sex Party -- 18 YO Shlong Eaters -- MILFs N Monster Rods -- Nylon Nymphos 8 -- Girlfriends With Benefits 3 -- Teenage Delinquents 3 -- 'X-Mates: Volume 1' -- 'Hometown Amateurs: Real Couples' -- DD Secretary Sex -- 'Sex Diary: Hardcore Vacation' -- Not Saturday Night Fever -- Don't Make Me Beg 3 -- Cheerleaders Gone Bad -- Redheads Bang Better -- Deep in My Holes! -- Celebrity Sex Tales -- Playboy's Beach House -- Hot Young Swinging Couples 2 -- Sorority Sex Orgy 2 -- Eager Beavers 6 -- Big T... Boss -- Frat Party Gangbang -- Endless Sluts -- 'DD: Big & Real 3' -- Pantyhose on Superhoes -- Kinky Sex Corruption 2 -- Boners for the Nurse -- 'MILF Hunter: Sexy Soccer Moms 2' -- Screaming Teen Orgasms -- Lesbian Road Queen 16 -- Jazmin's Touch -- Coed Dorm Sexcapades -- DD Amateur Wives -- How Bout Dat Booty! -- OMG! I Screwed My Daughter's BFF! 3 -- Brooklyn Kinda Love -- Horny Spoiled Wives -- 18 & Ready to Bone -- Pull Your Panties To The Side 2 -- Bound and Controlled 5 -- '3 Way: Array of Tail' -- Horny Cheating Moms -- Bang My Kittyhole -- Mother-Daughter Exchange Club 22 -- 'Adult Stars Close-Up: Introducing ...' -- My Wife's a Sexfreak -- I'm a Teenage Slut -- Latinas BlackMaled -- Mommy's Wet Panties -- Big Booty Cuties -- Round Amateur Booty -- Spread My Wife's Legs 2 -- Tight Black Threesomes -- Do Me & My Hubby -- Black Onion Booty -- Kinky Taboo Sex -- Redheads Go Black -- Let Me Get a Taste! -- All Girl Toy Fest -- Sex Addiction 2 -- Double Bubble Butt Sluts -- Amateur Teens Crave 12" Meat -- Hot & Horny Ebony Wives -- 'Teen America 17: Fresh & Wet' -- I Screwed the Pizza Guy 12 -- Gag N Swallow -- Occupy My Holes! -- Big Tight Fits -- 'Sloppy Wet ' -- Breasts 2 Die For 2 -- Hottest Stolen Sex Tapes -- Cougars on the Prowl 2 -- Swedish Sex Party -- 12 Holes 6 Poles -- Big Meat Between 34DDs -- 18 & a Horny Sex Fiend 2 -- Geisha Sex Invasion -- She Likes It Harder! 2 -- 'I Love Black ' -- Hungry Teen Throats -- My First Lesbian Experience 2 -- The Divorcee -- Science Lab Sluts -- Tiger's Got Wood! -- Too Pretty for Porn -- 'Black & Persian ' -- 'Adult Stars Close-Up: Unwrapped' -- Spread My Tight White Ass -- It's Big It's Black It's Jack 9 -- Boobs, Butts & Beyond 2 -- Amateur Fetish Freaks -- 'Dripping Wet ' -- Kiki's American Adventure -- Hot Black Wives & Moms -- Shagging British Broads -- Labios Calientes -- Lesbian Web Cam Lickfest -- Panties 2 the Side -- First Time Taboo Sex -- Amateur Wife Swap 7 -- Girls Licking Girls -- Couples Seduce the Hot Nanny 2 -- X-Mates 2 -- 'Fresh Teenage ' -- So Big It Barely Fits 3 -- Cooch Nibblers -- Big Night Sticks in Little White Chicks 4 -- Tera Patrick's All Star Pool Party -- Backyard Sex Cam -- 'Endless ' -- 'Adult Stars Close-Up: Unleashed' -- 19YO Facial Fanatics -- Wet Girlfriends -- 18 Tight N Latin! -- White Girls Got Booty -- Insatiable Sex Junkies -- Glory Hole Gaggers 5 -- Naughty College School Girls 45 -- Big Booty Brazilian MILFs 2 -- Fast Rides Hard Sex 2 -- Exposed Euro Babes -- I Tried Out 4 Porn! -- Fuck My Wife, I'll Fuck Yours -- Wild Bachelorette Sex Orgies -- Orgasm Motel -- Raw Reality Sex 10 -- Mom Wants a Brotha -- 'Adult Stars Close Up: Unabashed' -- California Beach Babes Boned -- Live New Girls -- Soccer MILFs 4 -- Big Boob Patrol 3 -- MILF Sex Toy Party -- Apple Bottom POV -- I Sold My Teen Tape -- 'Sex on the Beach: Bora Bora' -- 34DD MILF Mayhem -- My Plumber Is a Porn Star! -- Pink Lip Penetrations -- Step Daughters 10 -- White Moms Black Dongs -- Black Meat Sex Freaks -- Creampies for Everyone! -- Big Butt Brazilian Orgy 8 -- Accidental Pornstars -- Latin All-Stars -- 'Adult Stars Close Up: Unbelievable' -- Load Dumpster Kink -- Hardcore Nurse Sex -- Asian Teens Get Down & Dirty -- London Sex Tour -- High Quality Holes -- Horny Geek Sexfreaks -- 12 Inch Black Nightstick -- Seduced by a MILF 4 -- Lewd Lavish Ladies -- Load Gulpin' Hellions -- Horny Girls of Summer -- 100 Percent MILF Mania 2 -- POV Pervert 11 -- Bend Her Over & Pound Her Deep -- Sent In Sextapes -- Epic BJs -- OMG! White Booty -- The Masseuse, Part 2 -- Big Sloppy Boobs -- Big Natural Boobs -- Young Black Amateurs -- Hardcore Blonde Honeys -- Lick My Firecrotch -- 6 MILFs Get Demolished -- 'All U Can Eat ' -- Monster Rods N MILFs -- Coctomom -- 'Larry Flynt Presents: Dirty Blondes' -- 6 Amateur Sluts Get Facials -- MILF Does a Body Good 9 -- 'Filthy First Timers: Fuck''d on Boats' -- Spicy Latina Sluts -- Big Night Sticks Little White Chicks 3 -- Ten Holes 4 Filth -- Black Xtreme -- Tight Cooch, Cute Mouth -- Bossy MILFs -- Delicious T&A -- Naughty Amateurs 2 -- 15 Fetish Dolls 2 -- My Mom Is a Sexual Napalm! -- Rub & Tug Sex Shop -- 'Snack on My ' -- Black Guys in Me POV 5 -- Internal Injections 6 -- 'That ''70s Show: A Parody' -- Horny Cheating Housewives -- Filthy Eastern Euro V -- Frat House MILFs -- La Femme Chanel -- Dirty Sex Motel -- Dirty Over 30 5 -- Fishnet Fanatics 10 -- Strap-on Lesbian Adventures -- AZNs Devouring Meat -- Massive White Butts 5 -- Feed Her Every Inch -- It's Okay! She's My Step Daughter 3 -- Couples Seduce Couples -- Worship My Rack -- Interracial Booty Lust 2 -- 'Perfect 10''s: All-Natural Nymphos' -- Filthy Urban Loads -- Mother Load 5 -- MILFs Like It Black 3 -- 7 Young & Horny Ladies 2 -- Shake Dat Caboose -- Fornicasian -- Her First Monster Black Dong -- Dirty in the Backyard -- Black Cherry Buster -- 'Barely Legal 130: Trouble Makers' -- Breaking Her In -- She Sucked It Dry -- Please Let Me Swallow -- Trophy Wives -- Slurping Her Juices -- Addicted to Dong -- Barely Legal Biker Girls -- My Slutty Wife -- Curvy Ethnic Booties -- Wanna Do My Daughter Gotta Do Me First 14 -- Legends of the Game -- Massive Teen Facial Blasts -- Drink It All Slut! -- From Amateur to Pro -- Filthy Urban Freaks -- Filthy Wet Nymphos Pimped -- Caught on Camera Amateurs -- Black & Latin Gaggers -- Scary Big Ones 4 -- 'Adult Stars Close-Up: Revealed' -- Teen Lesbian Threesomes -- Pervs on Patrol 3 -- Surfing Attraction -- Snack on My Sluts -- Barely Legal School Girls 5 -- Cuentos Cortos -- Ripe Apple Bottoms -- Black Chicks Blow Best -- Ex Stole My Sex Tape -- My Hubbie Doesn't Know! -- Lesbian Creamholes -- Coeds on Random Dongs -- 'Star Trek: The Next Generation: A Parody' -- Cheer Squad Sleepovers 2 -- The Masseuse, Part 1 -- 'Newbie Black: Raw & Uncensored' -- Asians Crave Dark Meat -- Slobber on My DD's! -- Study Break BJs -- Jugnormous! -- No Names, Just Bang -- Nut Lickin' Latinas -- How to Satisfy a MILF -- 'Adult Stars Close Up: All Out' -- Redonkulous Boobs! -- Plump Latina Cracks -- Your Mom Loves Oral -- 110 Percent Natural 13 -- Lick That Sloppy V! -- Super Sluts Sluts -- Search For the Perfect Girlfriend -- Banging for Rent Money -- I Banged My Stepmom -- Coed Lesbian Lickfest -- Dirty Swinger Sex Bash -- Housewives Spread 4 You -- Her First Muff Buffet -- All-Star Overdose -- Charlie's Party Girls -- Playboy Morning Show -- 'Playboy Trip: Patagonia' -- Amateur Teen Neighbors 2 -- Take Me & Use Me -- 100 Percent Hardcore -- 40 Year Old Mother Load -- Inked Teen Kink -- Fresh Fox Sex Frenzy -- Dripping Wet Holes -- She's So Loud -- Ex-Girlfriend Sluts -- Sluts Gagging Sluts -- Deep Doggin' My Wife -- Ruthlessly Pounding -- Fresh Teen Flesh 9 -- Her First Big Stick -- Lick My Huge Boobs -- My GF Likes It Raw! -- My 1st Time 3 -- 1st Class Butt 6 -- 1st Time Black Teens -- 1st Time With a Brotha -- Mom's 1st Black Guy -- 1st Time Taboo Sex -- 'Filthy 1st Timers: Fuck''d on Boats' -- 32 Double Delicious -- I Trained Her 2 Swallow -- Ebony Vagina Eaters -- Ramming Between a Pair -- 69 Dirty Birds -- The Twilight Zone Porn Parody -- Over 30 and Dirty 2 -- Teens Gone Black -- Strip Searched -- MILFs Craving the Meat -- Latina F Buddies -- 'Adult Stars Close Up: Breathless' -- Shocking Creampies -- Daddy Would Be Proud -- Alexis Texas & Big Butt Friends -- After School Sex -- 10 Black Apple Bottoms -- MILFs, Cougars & Grandmas 2 -- Praia Brava -- 3-Way Nut Bust -- This Is How I Do Her -- POV Sluts Cam -- Nurses Make Housecalls -- Wild Sexy Sluts -- 'Adult Stars Close Up: Think Pink' -- Bent Over Boned Hard -- Gushing Soccer Moms -- Hot Sex in High Heels -- Fill My Mouth -- Hardcore Mamacitas -- Lesbian Sorority Sex -- Moms N Black Boners -- Splashes on Glasses 2 -- Invading Latina Holes -- Porn Legend Orgy -- Do Me in My Pink! -- Amateur Deepthroat Virgins -- Girl Girl Group Sex -- Peeping Tom Videos -- Secret Office Affairs -- Hey! Bust in My Box -- My Orgy Sex Tapes -- Amateur Porn Vids -- Come Fu! Asian Sex -- Handheld Lesbo Cam -- All Wives Cheat -- Oral Sex Tricks -- Toys Deep in Pink -- Nylon Nymphos 9 -- I Banged My Double D Boss -- 'Cougars: Nice Rack' -- 2 MILF Suckfest -- Stuff That Sluts -- Boned on the Booty Bus 2 -- Taste My Latin S...! -- Meat Craving Latinas -- In the Hole -- 2 Big 2 Black 2 -- Sex Cam Knockers -- Her First BJ Video -- 'Jersey Shore: A Parody' -- She Gotta Nice Rack -- My Horny Ex-Fiancee -- Invade My Slit -- 18 & Glamorous -- Bang Me Outdoors -- Mature Women Eat Out -- Butt Cheeks in the Air -- My GF's a Sex Freak! -- Sunny Leone's Watch Me -- 50 Shades of Kinky Fucking -- Sloppy Latin Beavers -- Sex Party Sluts -- Pornstar Tag Teamin' -- Secret Teen Videos -- My BFF's Dad -- Finger Bangin' Good Time -- Housewives Orgy -- Close Up in Cooches -- Greased Up for Entry -- Lickers and Swallowers -- Caught Spreadin' on Cam -- Official The Client List Parody -- Sexy Big Beautiful Women -- Fetish Playground -- Smothered With Sluts -- Tongue My Tight Hole -- Young & Sexy POV -- Sexy Urban Legends -- Latina Teen Facials -- Young, Horny & Hardcore -- DD Kinky Adventure -- Busty Housewives 4 -- Real Coed Call Girls -- Exam Room Orgasms -- Amateurs Caught on Cam -- Suburban Sex Party -- 40th Birthday MILF Orgy -- Big Wet Butts 17 -- Foot Fetish 4 U -- Dat Girl Got Booty -- Pink Lip Pick-Ups -- Homemade Hardsex -- Best of Sexcetera -- White Poles in Black Holes -- 35 Year Old Cheating Wives -- White Butt Black Shaft -- Eight Explosive O's -- 2 Babes Swap My Meat -- College Girl Sex Auditions -- Playmates in Bed -- We Like to Party in Public -- Homemade Amateur Porn -- Freaky Sex Tapes -- 'Millionaire Matchmaker: A Parody' -- Feed Her the Schlong -- Real Wife Orgies -- Gazongas 6 -- Top Guns, Part 1 -- Black Beauties Got Alotta Booty -- Honey Skin Pink Hole -- King Dong Goes Deep -- Soaking Wet Latinas -- Gushing Down Below -- Ethnic Orgasms -- Massive Facials 2 -- First Time on Camera -- Perfect at 18 -- My First Orgy -- Daddy's Girl Takes it Black -- Threesome Fantasies -- Pop on My Feet! -- Kinky Cover Girls -- 'Real Couples III: Caught on Tape' -- Nasty Girls at Work -- '10 Best: Apple Bottom Butts' -- Slim and Filthy -- 12 Lezzies With Toys -- Natural Bad Girl Racks -- House Rule Sorority Edition -- Did You See That Butt? -- 19 Year Old Coochie Chaos -- Stranger Sex Score -- Unethical SexFiends -- Lesbian House Hunters 4 -- Red Hot Redheads -- Freaks Done Deep -- Girl Girl Sex Spree -- Tropical Butt Babes -- DD Boner Bouncers -- Tera Patrick's POV Party -- Deep in Wet White Butts -- Let Me Swallow You 4 -- Teen Sex Party 2 -- Girls Licking Girls 7 -- Top Guns, Part 2 -- 'Tori Black: Superstar' -- My Teen Likes to Swallow -- 34DD Blue Collar Babes -- 2 Holes for Tiger's Wood -- Touched by a Cougar -- Hardcore Freaky Fiends -- Redheaded & Raunchy -- Dripping Teen Juice -- Busty Blonde Babes -- Hot German Sex -- Porn Star Next Door -- Asian Sex Invasion -- Lesbian Lady Lickers -- Girls Unleashed 2 -- Kinky Fetish Freaks -- 4 Cash Call Girl 2 -- Cougars Crave Large Man Meat -- American Heroes -- Anything Goes in Her Holes -- Juicy Housewives -- 'Sex Addicts Anonymous: Glory Holes' -- Creamin' California Teens -- Dirty Deep Throaters -- 34DD Great Big Boobs -- Lesbian Lick Party -- Roommates -- Oil Dat White Booty -- 18 Year Old Tasty Teens -- Lesbian Toy Loving -- Teen Web Girls -- Interracial Sex Addicts -- e-Rotic -- Sex Shot at Home -- Sex to the Extreme -- Perfect Pink 2 -- A Plus Milf Butts -- Creamhole Sex Party -- Nymphomaniac -- Stolen Sex Tape POV -- Make Her a Pornstar -- Dirty Desires -- Cheating Brides Boned Deep -- Mom's a DD Freak! -- Surf-Her Beach Pink -- Wet, Juicy Escorts -- Spring Break Hook-Ups -- Real Internet Sex Dates -- Mama Wants it Big 2 -- '3Way: My Wife & My Mistress' -- Smokin' Hot Latinas 2 -- First Person Virtual Sex Doll -- Coed Sex Party -- Kung Fu Vixens -- 18 Year Old Schoolgirl Sex -- '10 Best: PTA Moms' -- Her 1st BJ Video -- POV Calendar Casting Call -- 12 Inch King Black Dong -- Power Orgasms 201 -- S... Gagging Sluts -- Ultimate Jenny McCarthy -- Playboy Rocks -- Your Mom's Pink Tastes Yummy -- Amateur Orgy Starlets -- 1st Time on Camera -- Teach Me How to Swallow -- Kinky Loud Orgasms -- Deluxe Black Booty -- Open Lipped Asians -- Ex-Girlfriend S... -- It's Okay! She's My Stepmother -- All Internal Loads -- POV S... Cam -- White Girls Got Booty Too -- The Last Semester -- Her Very First MILF -- Homewrecking Babysitters -- Easy Sweeties, Hard Sex -- Naughty Blonde Sexcapades -- Amateur Newbies -- DTF Bondage Bandits -- Poolside Lez Lickin' -- Asian Black Attack 2 -- She's a BJ Pro! -- Bang Me N My Bestie -- After School Sextivities -- Smothered With S... -- Slammin' Sexfest -- Boy Nexxt Door -- Nympho Sex Addicts -- Teenage Blackaholics -- My 1st Orgy -- Sex Potion 69 -- Oiled Up & DTF -- Downtown Sex 2 -- Big Black C... Injections -- The Masseuse 2 -- Juicy Cougar S... -- Ginormous Black Nipples -- Nothing Butt 2 -- Sex With My Horny Wife -- Kinky Coed Threesomes -- Lesbian Teen Hunters 7 -- Roller Dollz Sex Derby -- Cheating Housewives 6 -- I Boned a Stranger -- It's Okay! She's My Mother in Law 4 -- Dirty Neighborhood Sluts -- Don't Speak Just Suck -- Hardcore Amateur Deep Throats -- '36DD: MILFs Busting Out' -- Make Me a Lesbo -- Ass n' Heels -- My Fetish Sex Pet -- Amsterdam Sex Antics -- 100p Extreme Pink -- X-Mates -- 12 Black Inches in White Muffs -- Juicy Cougar Sluts -- Finally Legal Teens Corrupted -- Horny Chicks Corrupted -- Sex Crazed Girls Next Door 5 -- Aim for Her DD's -- Luscious Latina Booty -- Tramas Ardientes -- Sneaking Around, Part 1 -- Cheating Latina Girlfriends -- Bust-a-Nut Sistas -- Great Big Boners -- Bent Over Blondes -- My First Muff Dive! -- Biggest I Ever Had -- Wife Swap Sex Party -- All Girl Greece Sexfest -- Young Tight Teens -- Kinky Amateur Couples -- 10 Amazing Monster Curves -- Down for Anything MILFs -- Doin' the Babysitter 13 -- Sneaking Around, Part 2 -- Indian Hole Stuffers -- Dripping Inside 2 -- Chocolate Soaked Shaft -- Ten Hole Gash Bash -- 18 Year Old Intern Bangin' -- Hot Break-Up Sex -- Cougars Craving Hard Meat -- Spread My Latina Legs -- 'The Vagina Van 7: DD Real Boobs' -- I Swallowed It All -- Mother-Daughter Exchange Club 23 -- 'The Addams Family: A Parody' -- Tight, Wet & Horny Latina Sluts -- College Girl Extreme Initiations -- Campus Sluts -- Asian Creampie -- I Was 18 Yesterday! -- Lesbian Fever 2 -- Hard-Bodied Cougars -- Tight Apple Hineys -- 'Big Mouthfuls: Latina Deepthroats' -- Massaged, Oiled & Sexed -- '10 Best: Wet Orgasms 2' -- Euro Cream Craving -- Making Kidneys Shift -- Flawless Brunettes -- 100 Percent New 18 Year Olds -- Real Lesbian GF's on Camera 3 -- 34D Horny Cougars -- Vampyre Sex Vixens -- 40 Inch Ebony Booty 3 -- Sleazy Rough Riders -- Loco Latin Sex -- Gag on My Junk Now Bitch! -- Lesbo Pool Party -- 'Reservoir Doggs: A Parody' -- Nonstop Teen Poundin' -- Tight Amateur Facials -- Sexy Fetish Swingers -- Do Me ... Or Else! -- No Boys Allowed -- Dim Sum Hot Asians -- Crazy 4 Creampies -- Homemade Lez Tapes -- Heavy-Duty Booty Calls -- Juicy Giant Juggs! -- Femme Asian Sex Bots -- Deep Raw Rough Sex -- Hot N Kinky Housewives -- Teen Candy Girls -- Hardcore Sex at Work -- Take the Whole Thing -- Latina Penetrations -- Amateur Wife Sex Tapes -- Hot Bush Lip Licking Teens -- Mom's in Need of a Bonin' -- Ink Stained Hotties -- Hot Housewife Threesomes -- Deep Inside a Sex Freak -- The Extreme Truth -- 4 Inch High Heels & Hot Booty -- Crack Dat Black Booty -- Big Meat, Tiny Feet -- Screw Me! I Get Wet -- Naughty Teen Virgins -- 36DD Pole Lovers -- Sit on My Face! -- Chocolate Creampie -- Hell-Raiser High -- Lesbian Moscow Muff Munchers -- Sex Crazed Girls Take It Hard -- Monsters of Meat 6 -- Hot Lips, Hot Legs -- She's a Sex Freak 5 -- 40 Inch New Apple Bottoms -- Lesbians Like It Dirty -- Big Boob Sex Fiends -- Epic Deep Throats -- 18 Plus Schoolgirl Games -- Amateurs Ride a Sybian -- Latinas Spread 4 Penetration -- Big Boob Cop Squad -- Naughty Student Bodies -- 9 Deafening Orgasms -- It's 2 Thick 2 Fit -- Teen Interracial Orgy -- Hot Freaks, Huge Boobs -- Grade A Black Rear -- 10 All Girl Eatery -- '10 Best: Drunk Orgy' -- Do Me & My Hubby 2 -- Mommy Needs to Get Off! -- Pure Raw Sex -- Amateur Sex on Film -- Seduced by a Cougar -- 18 Year Old Sex Initiation -- Kinky Outdoor Sex Action -- Redbones Like It Big -- This Ain't Avatar XXX -- Horny Halloween Hotties -- Poundin' Your Mama's G-Spot -- Jenna Haze's Lesbian Sex Slaves 2 -- Roxy's Wet Dreams -- Latina Sex Tapes -- Phat Oiled Booty -- Barely Legal Baby Fat 2 -- On the Air Sex Affairs -- Wives Pick Up Teens -- Sex With Toys -- Real Newbie Hook-Ups -- 18 YO Pasted Faces -- Hole Stretched in Slovakia -- 100 Percent Best VIP Sex -- 'Group Sex: MM/F' -- Deep in Mamacitas -- Teen Creampie Tapes -- Drill MILF Holes -- Bra Busting Blondes -- '10 Best: Double Teams' -- My Mom Got Nailed! -- All Girl Vag Voyage -- Kinky Amateurs -- BJ Feeding Frenzy! -- Addicted to Toys -- Cherry 2, Part 1 -- Craving Black Dongs -- Busty Babysitters -- DD Alexis Unleashed -- Filthy in Fishnets 6 -- Fast Rides, Filthy Sex -- Apple Bottom Bonanza -- Blonde Eye Candy -- Swiss Sex Slaves -- 3 Way Teen Hunting MILFs 7 -- 'Scream: A Porn Parody' -- 10 Lesbian Sex Fest -- 18 Year Old Pool Sex Party -- Neighbors DD Wife -- White Babes Got Back! -- Secretary Office Sex 2 -- Natural DD Teens -- Nasty Nympho Nurses -- 12in Brotha Lovers 2 -- Horny Hooker Orgy -- Dirty Lesbian Runaways -- Cherry 2, Part 2 -- 'Busty Boss: Lesbian Lessons' -- Young & Glamorous 2 -- Attack of Franken-Boobs! -- All Girl Lesbian Fest -- Gangbang Grand Slam -- Asian Coed Sexfest 3 -- Filled Up Creampuffs -- DD Wild Wife Sex -- Gratified Gloryholes -- Brotha Busted in Me -- 18YO Sexual Napalms -- Jumbo MILF Juggs -- Bust in My Black Hole -- Porno Rockstars! -- First Time 12" Orgy -- Dude, She's a Coming! -- Bubble Butts Boned -- Film Us Doin' It -- The World Famous Bang Bus 19 -- Down Her Butt Cheeks -- Pound the Round P.O.V. 10 -- The Twilight Zone Parody -- Urban Chics Blow Best -- Busty Adventures -- Classroom Sex Cam -- 2 Big 2 Thick 2 Fit -- Do My Holes Deep! -- '15 Girls: Cooch Cartel' -- 'Czech: New Nymphos' -- Supermodel Sexfreaks -- Sex Banned in Japan -- '12 Inches: Black on Blondes 2' -- Dark Cocoa Slurpie -- Horny Cheating Moms 2 -- MILFs Do Anything for Cash -- 'Asian Fever: Big Breasted Thai Girls' -- Cougars Crave Schlongs -- Group Sex Berserkers -- Big Girls Bang Better -- I Ride on Top -- Hot Strippers Slammed Hard -- Teachers I'd Like to Bang! -- Gangbang Squad 7 -- Perfectly Natural DD Beauties -- Buried in MILF Boobs -- Spandex Loads 4 -- Always Bet on Big Boobs -- Bouncy Boobs & Booty -- Extreme Truth -- Filthiest Pet of the Year -- All Girl Lip Lickers -- I Fucked My Wife's Best Friend 2 -- Teens Take 12 Inches 8 -- I Want to Be in Porn! -- 21 Year Old Cheating Wives -- 'Dare Dorm: Homemade College Sex Tapes' -- Gulp Every Drop Slut! -- '1 on 1: Bumping in the Bedroom' -- Massive Latina Facials -- Virgins -- 12 Inch Black Boners -- Massive Facials -- 'Ring Chicks: Lick Below the Belt' -- 18 Year Old Teen Worship 3 -- Sexy Maid Service -- Katie Morgan Chaos -- Country Girls Luv to Swallow -- Curvy Girls Swallow -- 18's in Tight Jeans 2 -- 'Riley: Satisfaction' -- Give Her Black Meat -- Tales From the Gloryhole -- '100p Taboo: Hard Raw Sex' -- Cuban Wet Coochie -- 'One Night Stand: Bad Behavior' -- '12 Muffs: Fun Filthy' -- Busty Babes Bouncy Butts -- Natural DD Wives -- Dirty Little Latinas -- Amateur Sex Fiends 2 -- Lesbian Seductions 32 -- 'Horny Newlyweds: Do Me Senseless' -- It's a Glory Hole! -- Boobs Ahoy 10 -- Lesbian Legal 8 -- Reverse Gang B... 4 -- Mama's Sloppy Beaver -- Tight Teachers 5 -- Babysitters 2, Part 1 -- Just Legal & Ready 4 Dong -- Neighborhood Swingers 2 -- Beauty Fockers -- Hot Young Latin Love 4 -- Interracial Booty Lovin' -- Mandingo's Cougars -- All D-Cup Sex -- Hottie Sex Doll Penetrations -- Slicked 4 Ur Stick -- ATL Apple Bottoms -- Sex Lives -- The Sex Must Go On! -- Pierced Lesbian Pink -- Pink Sluts Munchin' -- It's a Mommy Thing! 6 -- Babysitters 2, Part 2 -- Bad Girls Eatin' Pie -- MILFs & Coeds -- Monster Meat for Dirty Teens -- 'Jesse Jane: Pound the Pink' -- Foot Fetish Sexfest -- MILFs Love Hardcore -- Fresh to Porn Films -- Hotties Get Hammered -- Oil Slick Super Sex -- 10 Big Amateur Boners -- Mom's a Porn Addict -- Carwash Orgy 2 -- 'Training Day: A Parody' -- White and Begging for Black -- Big Breasted MILF Gaggers 2 -- Mommy Cream Pies -- Unfaithful Wives & Daughters -- Fill All My Holes Boys! -- Amateur Sex Tapes -- Betrayal -- Girl Girl Lips on Lips -- Penetrating Your Mom -- Real Big Racks 7 -- Big Boob Threesomes -- Bitches in Need of a Poundin' -- My Wife Loves Women -- Bang Me Hard & Finish on My Face -- Give Mom the Footlong -- Asian Teen Wet Panty Club -- 'Saturday Night Live: A Parody' -- Pumpin' Latina Booty -- The Horny Interns -- Finish on My Pretty Face -- Cheating Girlfriends Caught on Tape -- Slip Inside My Wet Latina Hole 2 -- Ashlynn Brooke's Lesbian Fantasies -- Tight Asian Sluts 6 -- 'Hot Bush 5: Hairy Hardcore' -- Spit, Grab, Bang, Swallow -- Angels of Debauchery 8 -- Caught My Wife With a Gangsta -- Intervention XXX -- Busty MILFs Dripping Wet -- Buttaholics Anonymous -- All Natural Breast Worship 5 -- Daddy Gets Lucky 2 -- Bangin' Her Ginormous Boobs -- Beaver Hunt 5 -- Sex and Corruption -- Latinas Take It Big -- Luscious Latin Booties -- Club Jenna's Family Jewels -- Best of Reality Kings 3 -- Big Butt Beauties -- Wet, Wild & Young 2 -- Seduced by My Sorority Sisters -- Booty Talk 88 -- '10 Wet Girls: No Guys' -- Young Tight Latinas 15 -- Crack Her Butt 11 -- Sex-Starved Amateur Teens -- Portfolios Bunny World -- Chocolate Treat -- This Ain't Dancing With the Stars XXX -- Extreme Ass!!! -- '10 Amateur Coeds: Sex Hazing' -- Prep School Creampies -- White Booty Worship 2 -- 2 Dongs in Every Girl -- Stick Your Dong in My Tight Box -- Naughty Black Housewives 3 -- Blackmail -- Hot & Mean Lesbians -- Oil and Booty 2 -- Cock Grinder -- Best of Big Naturals -- Beach Babe Moms 2 -- No Mercy 4 My Tight Booty -- The Official Hangover Parody -- 'Rocky: A Parody Thriller!' -- Office Perverts 8 -- Sweaty Lesbian Workout -- My Slutty Tutor -- The Man -- Big Butt Ebony Beauties -- 100 Percent All Natural DD Amateurs -- Cheerleader Interracial Orgy -- 'This Ain''t Star Trek XXX 2: The Butterfly Effect' -- These Big Boobs Were Made for Bangin' -- I Swallow -- Escort -- Eatin' Euro MILFs -- Fronteras del Placer -- 10 All Natural Boobs -- Photographer in Love -- MILF Lesbian Sex Party -- Young and Busty Wives -- The Pleasure -- Celebrity Photographers -- 'Nymphos: Suck & Fuck Hard' -- B a Porn Star! 4 -- Babysitters -- Don't 4get 2 Swallow -- Barely Legal Freshman Year -- 2012 Election Un-Coverage With Kevin & Andrea -- Bangin' Your Slutty Wife -- Underwater Poolside Plugging -- Chic -- Busty Horny Cheating Wives -- Finish Down My Teen Throat -- Ruta 69 -- She's 18, Tight & Tiny -- Sex for Sport 10 -- Bumper Grrls -- Stoya Workaholic -- Gang B... Junkies 2 -- Inside the Sexy Girls Next Door House -- Jenna's American Sex Star -- No Boys Allowed! -- Erotika -- Deep in Tight White Ass -- Hot Latin Sluts Adventures 58 -- Jenna Loves Pain 2 -- Escaladies 2 -- Sister Tag Teamin' -- Erotic Aftershock -- Hardcore Office Affairs -- Hardcore Asian Nymphos -- Big Chested Cheerleaders -- Teenage Cream Junkies 6 -- 'Busty Beauties: The A-List 2' -- 1 & Done First Time Amateurs -- Belladonna's Heavy Petting -- Creaming From Behind -- Teen Babysitters 4 -- School Sex Auditions -- 'Taxi Driver: A Parody' -- Fresh Lesbo Sluts -- Seduced by a MILF 5 -- Don't Tell My Dad 3 -- Amazingly Hot Models Get Boned -- 1 Cougar vs. 2 Shafts -- She Got Boobs & Booty -- Glory Hole Bad Girls -- '10 Best: Stolen Sex Tapes' -- Sex in Amsterdam -- Monster Meat Maids -- Orgasmic Happy Endings -- 13 Sorority Sexfest -- Wet Lesbian Weekend -- 4 Way Sex Pistols -- First Date Taboo Sex 2 -- 34DD Brotha Lovers 6 -- Hardcore Sex House -- 100 Percent Real Miami Hardcore -- Cheating Basketball Wives -- This MILF Can Sure Suck It! -- Hot Load Injections 7 -- Pirates -- Desperate Hotties N Heat -- Kinky Couples First 3some -- Horny 34DDD Waitresses -- Fresh Outta High School 6 -- Lesbian Perverts -- Amateur Black Dimes -- Sybian Sex Scams -- Real Lesbian GF's on Camera 4 -- All Kinds of 3Ways! -- DD Hardcore Nymphos -- Outfitted With Booty -- Throw a Cougar a Bone -- Swedish Sex Toys -- Kinky Jail Cell Sex -- College Creampies -- Fill Me With Spunk 2 -- Big Japanese Jugs -- Pop on My Pantyhose -- Casting Call Sextapes -- The Secret Lives of Horny Wives -- Pretty Dirty 2 -- Only 3ways Allowed -- Slobber My Shaft -- Masked Orgy Freaks -- 10 Babes Take 12 Inches -- Flick My Wet Teen Bean -- 11 Revenge Cuckolds -- MILF Amateurs Creampied -- Dominatrix Funhouse -- Amazing Booty Angels -- 2 Teens on My Tip -- I Went Lesbian in Europe! -- Slippery When Wet -- 'Bang My Wife Please 7: Latin MILFs' -- 2 Hardcore 2 Handle -- I Like the Brothas -- All Girls, No Boys -- Real Escorts Exposed 5 -- Massive MILF Boobs -- Sex Fiends Get Plowed -- Bad Girls 3 -- Xtreme Lesbians -- My Wife, Her Girlfriend and I -- Nymphos in Uniform -- Amateur MILF Muffs -- Finally! She Is 18! -- World Class Greek Behinds -- Give it to Me Deep & Hard -- 34DD Big Boob MILFs -- '10 Best: College Sex' -- Bi-Racial Lez Lickers -- Tappin' MILF Booty -- Spray Paint My Face -- King-Size Penetration -- Players Sex Club -- Horny Russian Girls -- MILFs Licking MILFs -- Daughters Do Porn! -- Kinky Outdoor Sex -- Cocoa Cooch Lickers -- Bangin' 2 Sluts at Once! -- Panty Fetish -- Hi Def Sluts -- My Rod Hungry Babysitter -- Hot N Horny Housewives -- 'Jumbo Jugs 5: Slide Between' -- Nymphos Get Nasty -- Asian Coed Sexfest 2 -- 'Sold: Real Estate Dames' -- No Boys Allowed 3 -- Sex Clubbin' Foreigners -- 'Supergirl: Sex Spoof' -- Ginormous Jugs -- Wife & Latina 3Way -- Bratty Teen Sex Queens -- 50 Orgy Babes Humpin' -- Girlfriend Goes Black -- 12 Chicks No Sticks -- Ride Me Good -- Nymphos of Beverly Hills -- 8 Girls Orgasm Loud -- 'Hardcore Sluts: Down to F...!' -- Naughty Neighbor Relations 3 -- Ashton Loves Jenna -- The Crib -- Bend Me Over the Desk -- Drill Her and Fill Her -- Drench Her Boobs -- Pink Lips & Pigtails -- Secretary Sex Job -- 'Top 10: Colossal Fake Cans' -- 'Route 69: Backseat Boning' -- All Natural All Sex -- My Nurse Is a MILF -- Sex Addicted Wives -- Please Cream My Pie! -- First Time With a Lez -- Freakin' in the Street -- Set a Drink on It -- Good Wives Open Wide -- 32DD Tight Teens -- Kitty Licker Club -- 40 Inch Ebony Asses 2 -- '18 to MILF: Orgies Galore!' -- Tan Lines & Tight Babes -- Hot Rod Tramps 3 -- Foreigner -- Ouch It's Too Big -- Cream Filled Pink -- 2 Timing Housewives -- Creaming Sticky Peaches -- Shhh ... Don't Tell Your Momma -- Group Sex Is the Best! -- Tattoo Parlor Pink -- Virgin Facial Frenzy -- I Just Did My First White Guy! -- '10 Best: Money Shots' -- Swingers Bang Teens -- B&W Filthy Freaks -- First Time Video Virgins -- Sex Crazed Strangers -- Cheating Wife Sex -- Oiled Onion Booty -- 18 Lezbo LickaThon -- This Ain't the Expendables XXX -- Sex Addict Hospital -- 'The A-Team: A Parody' -- Coed Amateur Sluts -- 'Barely Legal: Teen Glory Holes' -- Tight B4 I Went Black -- Homemade Sex Party -- No Boys Allowed 4 -- Japanese Sex Servants -- Hardcore Sex Training 4 -- White Bubble Booty -- Hungry Cheating Moms 2 -- 'Strip Poker: Going All In' -- Hardcore Blow Bang -- Cougars Huntin' for Boys -- Just-in-Beaver -- Small Town Amateur Sex Tapes -- Her First Cougar -- Dirty Schoolgirl POV -- 12 Inch Rod Engulf -- All Nite Party Girls -- Roja Venganza -- How to Hookup Hardcore -- Lil' Boobs, Wet Holes -- 18 Year Old Frat House Sexfest -- 12 Inch Black in MILFs -- Bumper Grrrls 2 -- Playmates Bustin' Out -- 12 Inches Deep in a Sex Freak -- Fresh, Tight & Petite -- My Boss' Daughter -- Teen Hitchhikers 30 -- 10" Erections in Petite Teens -- Threesome Orgasm Guide -- Dirty Delinquents -- All Blonde, Hot & Wet -- My Honey & Me at Home -- Tight Rich Teens -- Big Boob Blondes -- Dripping Teen Sex Queens -- Feeding 2 Filthy Sluts! -- Interracial Cuckold Surprise 2 -- Glamcore -- MILFs Eating MILFs -- Touch of My Hand -- Black Shaft, Asian Rear -- Summer In Love -- 'Swingers: Risqué Sex Play' -- '100 Percent Voyeur Sexfest: Casey''s Camper' -- Too Small to Take It All -- Lesbian Honeys 3 -- Cheating Wives 8 -- Big Toys No Boys 10 -- I Banged My Slutty Secretary -- Hollywood Party Nymphos -- Krystal Loves Jenna -- Sasha's Birthday Party -- Bad Teens Like 2 Get Pounded -- 34 Deluxe Double Ds -- 5 Superstar Orgasms -- Bustin' Black Booty 6 -- Small Town Easy Sweeties -- Amateur Wife Sex Tapes 2 -- Hot Wives Get Worked Out -- 40 Inches of Latin Cheeks -- Amateur Coed Threesomes -- She Works Hard for Her Money -- Fighters -- Her First Big Wanker -- Home For the Holidays -- Cam Girl Confession -- Cash Offers 4 Orgasms -- 10 Sexpots Score -- Hardcore Girls on Film -- Tight Latinas Banged Hard -- Hardcore Fever 4 -- Film My Juicy V -- Stepsisters Get Laid 2 -- Tappin' Model Azz -- Deepthroat Hungry Bimbos -- Hardcore Sex Servants -- Lesbian Teen Lickfest -- Filthy Cashier Girls -- I Want to Do Porn! -- Your Mom Is Hot -- 34DD Black Babes on White Boners -- Lewd Leather Babes -- 100 Percent Stacked Ginger Racks -- Bouncy DD Nipple Play -- Big Breasted MILF 17 -- Teacher Sex Cam -- 'An American Werewolf in London: A Parody' -- Lipstick Honeyz in Heat -- Lesbian Pin-Up Girls 7 -- The Boss' Dirty Daughter -- Seductive Lesbian Kinksters -- Girls Craving Deepthroatin' -- Cream Sucking Sluts -- Virgin Runaways -- Asian C...quats -- Bent Over Brazillian Butts -- Guiding the Pole in My Hole -- Curious Girlfriends -- Mean Lesbos & Big Toys! -- Real Amateur Group Sex -- Lonely Horny MILFs -- Interracial Delinquent Teens 2 -- Suck My Honey Juice Out -- Two Timing Horny Housewives -- Boardroom MILFs -- Slutty Red Riding Hood -- Getting In -- Teens Love Their MILFs -- Your Mom Is the Bomb -- Teens With Big Boobs 15 -- Absolute Amateurs 3 -- Payment -- Rub Me Down There Till I Squirt! -- 'Breast in Class: Naturally Gifted' -- Black Beaver Bang -- Teens Wear Short Shorts -- Ahh It's Huge 2 -- Juicy Wet Butts 6 -- Tori Black Is a Goddess -- MILF Does a Body Good 2 -- I Just Turned 18 9 -- Asian Obedient Sluts -- Mother-Daughter Exchange Club 21 -- Brazilian Butt Fiesta 3 -- Wet Teen Carnival -- Asa Akira Superstar -- This Ain't Avatar XXX 2 -- Caribbean Sex Queens -- Cheater, Part 1 -- Explode Inside Me 5 -- Sexual Step Daughters 11 -- Office MILFs -- Pull Your Panties to the Side -- The Simpsons Sex Tape Parody -- Big Booty Slumber Party Orgy 6 -- 'Bridesmaids: A Parody' -- Horny Little Nymphos -- Bachelorette Orgy 2 -- My Little Panties 3 -- Sorority Pledges Do it for Dollars -- Sexperts -- Bang My Wife 4 Me 3 -- Real Slut Party 5 -- 'Swingers: Risqué Sex Play' -- Horny Wives Inc. -- Bodacious Bombshells 4 -- Cheater, Part 2 -- Official Scarface Parody -- Black Meat Injection -- Road Queen Lesbians 19 -- Sex Under Hot Lights -- My Date With a Pornstar -- Bunny World -- Hot Tour -- King Dong in Black Holes -- Circo Rojo -- Naked Happy Girls -- Steamy Shower Girls -- Big Breasted Lesbian Lickers -- The Smiths -- Filthy Fetish Dolls -- My Wife Is a Slut -- Intimidades -- Young Busty Latina Housewives -- Pornstars Like It Big -- Office Orgasms -- Tight Sweet Teens 3 -- 'Raven: Kissing Cousins' -- Pool Party Orgies -- Round Latina Butts -- Bent Over Brazilian Butts -- Taxi Cab Stories -- DD Doctors 4 -- Racing Curves -- 'Zero to Sexty: Backseat Gaggers' -- I Screwed the Pizza Guy 5 -- Love & Marriage -- 'Lesbian Adventures: Strap-On Specialist' -- Luli in Love -- Big Butts, Deep Throats -- Teens Like It Big -- Bombshell Bottoms 7 -- Couch Confessions -- 'Sex In the VIP: NYC' -- Chubby Chaser Bang -- Pamela Sex -- Dripping Threeways -- Bevy of Big Black Booty -- Assassins -- Married to a Nymfo -- Extreme Ass Parade -- Fuck Me Now Club -- 'Barely Legal: As Tight as a Teen' -- Bang My Lil' Sister -- Holiday Office Party Nymphos -- All Shaved Beavers -- Summertime Sex Spree -- I Worship Ur Mom! -- 40 Inch Booty & 34 DD's -- Fired 4 Bonin' at Work -- 10 Best - Freshman Coeds -- '12 Inches: Black on Blondes' -- 3 Poles 1 Wife Hole -- Finally Legal 4 Porn -- 'Dare Dorm: College Sex Tapes' -- 10 Types of Trim -- Her First Lesbian Experience 9 -- Take It Deeper 6 -- DD Swinging Housewives -- Lesbo Toy Box -- Loud Latin Orgasms -- Curvy Freaks Need Big Dong -- 'Somebody Shave Me: Hairy & Horny' -- Body Heat, Part 1 -- Tie Me Up & Dominate Me -- Playmate Review 2012 -- Tight Carwash Teens -- Stolen Sex Tapes 2 -- 12 Lesbians Get Off -- Taste My Brown Suga -- Asian Sexfixiation -- Fresh Lesbo Lickers -- Real One Night Stands -- Real Boobs, Real Orgasms -- Double-Digit Inches -- Nail My Holes Hard! -- My Horny Secretary -- Couples Seeking Couples 2 -- Nut on My Face -- Black Up My Mom -- Hungary 4 Sweet Girly Pink -- Juicy Freshman Cooch -- 100 Percent Latin Street Booty -- 17 Sex Superstars -- Big Real Breasts 4 -- Finish on My Big Natural Boobs -- Sultry Lingerie Girls 2 -- 'Office Politics: Sex With Co-Workers' -- Stolen Sex Tapes -- Pound Me Deep & Pop on My Feet -- 2 Big 2 Black -- Attack My Perfect Booty 2 -- She's Soaking Wet -- MILF Nannies vs. Coed Babysitters -- Asian Amateur Fest -- Punk Rock My Box -- '10 Best: It''s Too Big!' -- Wake Me & Take Me -- Real Lesbian Sex! -- Pretty Filthy Models -- I'm Coming for You -- Boning French Babes -- Nailin' Hot Cougars -- Hardcore Lezlove 2 -- She Screams for Sex -- Guide to Oral for Couples Part 2 -- 'Monster Dongs 10: Hardcore Interracial' -- Dude, That's My Mom! -- Pop on My Glasses -- 18 Year Old B-Cup Babes 4 -- 2 Big 2 Take It All 3 -- 32D Busty Brunettes -- Pink Latin Abyss -- Be My First Lesbian -- 34DD MILFs Attack -- Dirty Filthy Dames -- Round Brown Booty 5 -- Reality Sex Show -- Rookie Wife Swap 8 -- Outdoor Sex Adventures -- Cocoa Teen Booty -- Nerdy Girls Are Freaks in Bed -- There's No Place Like Mom -- Take My Innocence Please -- Interracial Gangbang -- Perverted Panty Sex -- Raunchy Horror Porn Show -- All Girl Dildo Bang -- 18 Year Old Tokyo Teens 2 -- Dirty Blonde Sex Score -- Lesbian Fever 6 -- Insatiable Latinas -- Hottie Gangbang -- My Bride's First Bang -- 8 Brand New Bad Girls -- Bachelor Party Orgy -- Hardcore DD Babes -- Chocolate Craving Cougars -- Horny Massage Girls -- Real Lesbian GF's on Camera 2 -- Big & Real Racks -- Black Butt Woman -- Ginormous Boobage! -- Watching You -- Big Boobs, Wet Holes -- Swinging Wife Traders -- Asian Sex Invasion 2 -- Kinky Sex Corruption -- Sizzling Stolen Sextapes -- 40 Inch Bubble Butt Pets -- Vanilla Vixens Go Hardcore -- Cougar Sex Club -- 'Elvis: A Porn Parody' -- Devious 19 Y.O. Sex -- DD Stepmoms Slammed -- Five-Star Creampie Surprise -- Apple Bottom Orgy -- Public Sex Punks -- 18 Year Old Casting Couch 2 -- Come Coat My Throat -- 34DD Mouthwatering MILFs -- Please Make Me Lesbian! 6 -- Filthy Office Girls -- Sex and Corruption 2 -- First Timers Drilled Deep -- Real Big Bouncy Boobs -- Amateurs Corrupted -- 'Group Sex: 3 or More' -- Big Boobed Latinas -- Bang Me for Bucks! -- My Wife & I Share a Teen -- Deviant Kinksters -- Ten Budapest Butts -- My Sexy Lesbian Girlfriend -- Juicy Bubble Butts -- 'Hot Bush 3: Hairy Hardcore' -- First Campus Orgy -- Stuff Me With Toys -- Big Phat Apple Bottom Bootys 16 -- '3way: Wife & I Go Black' -- 7 Babes 7 Orgasms -- Neighbors With Benefits -- I Make Myself Come! -- Big Butt Latin Moms 9 -- Banging for a Paycheck -- 'The Breakfast Club: A Parody' -- Fun With Big Breasts 7 -- My Stepmom, My Boyfriend & Me -- Black Meat Sex Fest -- Hot & New Sex Bash -- Hardcore Swiss Sex Tour -- Dancers Turn 2 Porn -- 18 and Spread for Sex -- Bangin' Brunette Beginners -- She Likes It Harder! -- Big Meat Teen Addiction 5 -- Baby Got Boobs -- Women Seeking Women 82 -- Body Heat, Part 2 -- 'King Dong: Shove it Deeper' -- Gag on His Monster Dong! -- Real Escorts Exposed 4 -- Cheat for Big Meat! -- Horny Spanish Flies 3 -- Teen-ie Boobs -- 'All Fetish: High Heels & Glasses 3' -- Is This Your Girlfriend? -- The Biggest Stick I've Ever Seen -- 'Penthouse: Girls of Prague' -- Pierced & Tatted Teens -- Gracie Glam Is a Naughty Slut -- OMG, Real FB Girls Get Banged -- Bombshells Like It BIG! 3 -- Slutty Spanish Senoritas 8 -- Curvy Cuties 1 -- Sexy Redheads Face Down Butt Up -- Girlfriends in Love -- Hometown Amateur Hookups -- The Profession -- Cougar Lesbians 2 -- Cream Craving Blondes -- 'Candy ''69: Summer of Sex' -- All Girl Shaved Slovakians -- Kinky Natural Boobs -- 100p Big Booty Blast -- Juicy Virgin Holes -- 'No Spitting Allowed: Swallow All Loads 3' -- An Office Romance -- Oiled Up Big Natural Boobs -- Bound to Please 6 -- Filthy Rod Suckers -- Big Boob Patrol 8 -- Champagne Room Sex -- Sinful Blonde MILFs -- Hardcore Pro Call Girls -- Teens of Thailand -- Too Big for a Virgin -- Slut Puppies 6 -- Home Made Couples 13 -- That Slut Next Door -- Meat Craving Wives -- Stuff Her Face! -- 8 Inches for Asian Holes -- Swingers Key Party -- A to D Cup 18 Year Old Pups 2 -- Bouncy Black Bootay -- Afterschool Boobwork -- Asking Price -- 'Sluts: Suck & Service' -- Big Butts Are Us! -- Cougars Do It Like Animals 5 -- Round Brown Butts and Boobs -- So Good I Scream -- Big Sticks in Hot Chicks 4 -- Kinky Amateur Hook-Ups -- First Time Threeways -- 'See My GF Bang: See My Sex Tapes' -- Austin Taylor MILF Legend -- Rich Bitches EXXXposed -- My Wife Likes It Big -- College Girls Get Laid -- Bisexual Secretaries Inc. -- Trouble at the Slumber Party -- Bangin' Kinky HO's -- Cash Hungry Cougars 2 -- 18 Year Old Pie -- Perverted Sex Puppies -- 'Cougar Hunters 5: Double Ds' -- Loud Orgasm Onslaught -- Asian Lesbian Lickers -- Holiday Office Party Orgies -- Creamy 34DD Boobs -- I Film Our Sex Fest -- Facial Overload MILF Edition 2 -- Classroom Orgasms -- 'Not Charlie''s Angels: A Parody' -- Amateur Girls Wet and Horny -- OMG! I Screwed My Daughter's BFF! 4 -- Ivy League Nymphos -- My Wife, Her Sister & Me -- Big Boobs & Deep Throats -- Booty Talk 96 -- Medieval Mischief -- Latina Penetrators -- Bombshells in Bed 1 -- Teacher's Sex Slaves 4 -- 'Tru: A Parody' -- Screaming Squirting Orgasms 2 -- Big Black Booty -- 10" in Her Latina Mouth -- Mom's First Porno -- Hitchhiker Teen Pickups 2 -- My Secretary Swallows! -- Life's a Beach! Amateurs at Play -- The Devil Wears Leather -- Fuck Me After School -- Teens New to the Game 8 -- Dr. Long Dong -- 24 Hrs in Boobsville -- Springbreak Coeds Bang for Cash -- I Finally Fuck Your Neighbor -- Desperate & Dirty 8 -- Mothers & Daughters, Part 1 -- 'Curious Couples: Swinger Lifestyle' -- She's Tight & Drippin' -- Ram My Wet Mouth -- Horny White Babysitter 2 -- 100 Percent Natural Racks -- Mothers & Daughters, Part 2 -- First Time Auditions 7 -- Ex-Wife Sex Tapes II -- Gushing Teen Holes -- Lesbian Sleepover -- 18Teen Paradise -- 'Top Heavy Chef: A Parody' -- 100 Percent All Natural MILFs -- Secretaries Suck! -- Bondage Submission -- Cali Couples Do Porn -- 'I Film Our Sex: See My Sex Tapes' -- Misty Stone Superstar -- Girls Gone Hardcore 2 -- All Natural Sweethearts -- Raw Reality Sex 11 -- The Farmer's Slutty Daughter -- Is Your Mother Home? -- She's Got Epic Booty -- 'Busty Beauties: The A-List 6' -- My Date With a Porn Star -- Poolside Booty Munch -- My Bosses Daughter 2 -- Submitted Amateur Sex Tapes -- Cherry Popping Latinas -- Wives Love Big Black C... -- Black Booty Worship -- Family Matters, Part 1 -- Homeless and Horny -- Famous Swallowers -- Hitchhikers Are Easy -- Bang My Wife 4 Cash -- This Ain't Hollywood Squares XXX -- Amateur Gaggers -- Oil Covered Butts -- Bubble Butt BBQ Party 3 -- Carwash Orgy -- 'Bang My Juice Boxxx: Latina Squeeze' -- Oiled Up & Horny 2 -- MILFs Like It MASSIVE -- Trying Out the Babysitter -- Asian Pink -- Amateur Euros Get Cream -- Girlfriends Gettin' Laid 5 -- Brea's Private Lies 2 -- Family Matters, Part 2 -- Let's Hear It for Cheerleaders -- Babysitter Playtime 9 -- Teenie Bikini Bang -- Lusty in Lingerie -- 8 Holes, 4 Poles -- MILFs Take It All -- 'Sci Fi Sex: Fan Boy Over-LOADS' -- Jenna's Dirty Secret -- Odd Jobs -- Trashy Teen Pickups -- Hardcore Lesbian Lickfest -- Swimsuit Calendar Girls 2011 -- I Like It on the Face -- Fuck Till She's Soaked -- Teen Orgy Screamers -- Do My Daughter but Do Me First 16 -- Filthy's Peepin' Tom 5 -- New Dad in Town -- Chubby Chicks Get Banged -- There's a Party in My Mouth -- My Black Stepdaddy 2 -- White Teen Panties -- Spread My MILF Thighs 2 -- Slutty Office Staff 2 -- Horny Single Moms -- 'Barely Legal 131: Sinful Surf' -- Untapped Assets 2 -- Kinky Lesbian Threesomes 25 -- 18 Year Old Nanny Nymphos -- The Hair Witch Project -- Cougar Cruisin' -- Psychedelic Sex Antics -- DD Bubble Butt Babes -- Hard Sex in Hungary -- 10 Inches in Amateur Pink -- Big Booty Worship -- Look at Those Phat Bunz! 3 -- '10 Best: From Behind' -- Blonde Girl Free-for-All -- OMG He Broke My Box -- Filthy Lesbian Affairs -- Horny Latin Cougars -- Scandalous Office Sex -- 40 Inch ATL Ebony Butt -- Hot Teen Next Door 2 -- Seduction Weapons -- Around the World in 80 Babes -- Gushing Sorority Sisters -- Real Boobs Are Best -- Massive Wet Butt Junkies 6 -- 'Jesse: The Roommate' -- Interracial Orgy -- Tight White & Wet for Big & Black 2 -- Red Headed Sluts -- Huge Sticks & Blonde Chicks -- Sex Court -- Sweet Teens Get Nasty -- Make My Muff a Meal -- Make Dat Booty Clap -- New & Nasty Couples -- '19: Unseen Amateurs' -- Riot Grrl Rampage -- 32DD Breast Worship -- Long Thick Meat -- 'Creampie: Rough & Raw' -- Facial Free-4-All -- Hot Wives Go Black -- Dildo Tales -- Hammering Czech Holes -- Udderly Wet Nurses -- UC Coed Sex Party -- Huge Boobs 4 the Boss -- Erotic Sex Kittens -- Fresh Faces Banged & Loaded -- Delphi -- Jenny's a Nympho -- Lusty Lil' Latinas -- 3Way Home Movies -- Country Girl Cooch -- 40YO Anaconda Addicts -- Flash Mob Sex Freaks -- Curvy Blonde Betties -- Private Schoolgirl Lesbians -- Get a Load of Booty -- Mother-Daughter Exchange Club 19 -- Your Wife 4 Mine! -- Lesbian Lick Freaks -- Dirty Tales of a Sexfreak -- 3 Way Teen Hunting MILFs 2 -- Damn! She's a Lesbian -- 7 Flexible Freaks -- Throbbing Hard Sex Tails -- Asian Lesbian Lickers 2 -- Pink Licking Lesbians -- 36 DD Breast Creampies 3 -- Asian Bang Jobs -- Bikini Girl Orgies -- Group Sex Orgasms -- 34DD Brotha Lovers -- Cougars & Teens Sex Shop -- Eating Out -- 4Way Shocking Sex -- Black Apple Booty POV -- DD Chest of Champions -- MILF Face-Pasters -- Make Me a Lesbian -- '10 Best: Booby Bang' -- Sex in Public Places -- Non-Stop Slippery Sex -- Moms Ride It Best -- 12 Inch Teen Addiction 7 -- All Girl Lez World -- Hardcore Euro Call Girls -- Cuckold Stories 3 -- MILF Hunter Banged My Wife -- Academy of Fine Ass -- Blowin' the Cable Guy -- Drippin' Wet Bubble Butt Latinas -- Rear View -- Crazy Big Booty 9 -- 'Sex on Wheels: American Tour' -- Bi-Curious Boner Bangers -- Official Taxicab Confessions Parody -- 14 Pink Pirate Holes -- Tongue Deep in Pink -- Hot Dirty Sex Secrets -- Drippy G-Spot O's -- Rock Girl Booty Fest -- Big Boobed Threeways -- 10 Sex Crazed Wives -- 100 Percent Sex Juice Spray -- Black Thai Affair -- Freaky Girls, Crazy Sex -- Pop Inside Latinas -- 20 Girls Lez Out -- Explode on My Boobs -- DD Mounds of Joy -- Hot Kinky Group Sex -- 3somes Are More Fun -- Lonely Wives Cream! -- Asian Sexual Delinquents -- Breast Worship 3 -- She's Naughty Like Her Sister -- Easy Sleazy Strippers -- Creaming Teens -- Cheating Girlfriends -- Bleach Blonde Load Gulpers -- Shaft Lovin' Ladies -- MILFs in Training -- 30 Teens Group Sex Slam -- Hot Oozing Creampies -- Blonde Moms With Big Ta-Tas -- 18 & Ready 4 Caucus -- DTF Bloggers -- '3Way: My Wife & Her Girlfriend' -- Hot 18 YO Apple Booty -- Can U Handle Her? -- Lesbo Cooch Kissers -- Gym Slut Facials -- Moms Favorite Babysitter -- Do Me at the Office -- Watching You 2 -- Another Man's Wife -- She Rides on Top -- Girl Girl Prison Kink -- Asia's Hottest Coeds -- 2 Babes 1 Boner -- All Natural Nymphos -- Hard Furious Freakin' -- Girl-Girl Orgy Sex -- It Ain't The Nanny -- Lesbian Vag Eat Out -- DD Drippy Wet MILFs -- Backstage Gash Bash -- Big Bootys in Brazil -- New & She Can Shag -- Wreck My Tight Teen Hole -- Picket Fence Peepers -- Fuck Big MILF Boobs -- Big Breasted MILF Shakes 18 -- Doggystyle Doctors -- Home Wrecker -- Lesbian Super Soakers -- Teen Panty Worship 3 -- 18 Year Old Facial Frenzy -- Horny Kimono Cougars -- Naughty Broads Behaving Badly -- Interracial Group Sex -- It's Too Big! -- Deep Throating Nymphos -- Drunk Party Girls Spread -- Tight Latina Sex Addicts -- Curvy Teens -- Who's Your Daddy? 14 -- I Fucked Your Spouse in Your House -- 2-Timing Sex Fiends -- All-Star American Teens -- Tango Danza Prohibida -- Interracial Booty Clap -- Sex Diary of My Girlfriend -- I Want to Try a Lez -- Schoolhouse Knockers -- Lesbo 69ers -- Diaries of Passion -- Black Butt Suffocation 5 -- Awakening to Love -- Eight Girl Black Ball -- 'Extreme Ass: Deep Penetration' -- 'Bang Maids: Full Sex Service' -- Flexible & Horny Cheerleaders -- Real Dr. Office Sex -- Blondalicious Booty -- Insatiable Sex Servant -- Say Hello to 12 Inches -- Library Sex Cam -- Euro Tourist Orgyfest -- Horny College Girls on the Prowl -- 'Anchorman: A Parody' -- 1st-Time Bonin' Black 3 -- All Chicks No Sticks Sex -- I'll Let You Watch Me -- Beach Babes Boned -- Fetish Kink Freaks -- DD Latin Mamas -- All Holes Need Toys -- All DD's Need Cream! -- Slutty Freaks Knockin' Boots -- 'Halloween: A Parody' -- Dirty Latina Party Girls -- Sexfest in Suburbia -- IM Me 4 Sex -- The Mating Habits of Cougars -- Shove It Deep Down My Throat -- Wicked Wives Spread Wide -- Bend Her Over and Bang Her -- Young Wives Gone Black -- Just Turned 18 -- Homewrecking 3somes -- Man Poles in Cougar Holes -- Tara's Ta-Tas -- Cyber Web Couples -- Natural Big Boobs -- Dirty Cuckold Wives -- Stuff My Martian Muff -- Toys Deep in Lesbians -- Kinky College Campus Sluts -- Give It to Her Hard -- 100 Percent Hard-Up 4 Sex -- 4 Filthy Orgies! -- DD's and Deep Holes -- 'The Wild Life: Miami' -- Hot Internal Injections 8 -- Extra Horny Coeds -- Sex and Corruption 3 -- Now Those Are Boobs! -- 18 Years Old and Down for Sex -- Models Behaving Badly -- Amateur Road Trix 4 -- Bang My Holes Hard! -- This MILF Squirts 2 -- Roller Dollz Sex Derby 2 -- Dude, She's Coming! -- 'Cheating Sluts: Don''t Tell My BF' -- Moms Love Big Black C... -- Boners for Schoolgirls -- Lesbian Stepsisters 4 -- 'The Graduate: A Parody' -- Busty Beauties Car Wash -- Huge Amateur Racks -- Exotic First Timers -- Stretch Me Black Boy! -- Hot, Busty & Bossy -- First Time Lesbian Teens -- Big Wet Latin Butts 11 -- Hardcore Prague Sex -- Asians Taking Big Meat! -- Latina Gaggers -- Crazy Lesbian Sluts 10 -- 3 Way Rear -- After-School Rammin' -- Reckless Teen Sex Addicts 11 -- First Timers Beg For More -- Dirty Orgy Babes -- MILFs Like It Black 5 -- 18 Plus Sex Stained Casting Couch -- The Masseuse 3 -- Sloppy Wet Teen Beaver 4 -- Naked Dr. Exams -- Masseuse 4 -- Fat Ass White Girls -- MILFs Need Big Meat -- Horny Dropouts -- Teenie Interracial Holes 3 -- Deceptions -- Dirty Moms -- Corrupted Private School Girls -- Pump My Big Black Booty -- Girl on Girl ORGASMS -- Soft Red Lips & 2 Sets of T... -- Pounding the Pink -- Big Latin Wet Butts 11 -- Real Housewife Sluts -- Creamy Teen Facials -- My Mother in Law 10 -- Blacked & Stacked -- 10 Inches in Tight Holes -- Booty Clappin' Superfreaks 6 -- Supermodel Sex Tapes -- Oops! My Panties Are Wet -- Inked Up Orgy Girls -- Sticky Wet LaTEENa Sweat 6 -- Wife Invaders -- 2 of a Kind -- Big Boob POV 3 -- Cream My Crack 5 -- Interracial Orgasms 2 -- Chain Gang Orgy 2 -- The Voyeur 34 -- Oil Overload -- Tickle My Tonsils 6 -- 8Teen Slut Bangers -- Stretching MILF Holes -- Slammed by Big Black Pipe -- 7 Minutes in Heaven -- Cheaters Caught in the Act 3 -- Big Boob Boss -- Young Harlots in Detention -- BJ Study Group -- Ashlynn Brooke's Lesbian Fantasies 2 -- Sexploration -- Addicted to Boobs 6 -- Exotic Super Sluts -- Young Big Natural Breasts -- Cream Her Teen Holes -- Swimsuit Calendar Girls -- Big Natural Breasts 22 -- Ready Wet Go 5 -- Academy of Fine Butts -- I Accidentally Came in You -- Real Girls Get Drilled -- Big Boob Sluts Love Big Dongs -- Lexi Gets Plugged -- Jenna Confidential -- The Sex Pill -- Come ON Mom -- OMG She's Tight! -- 'Foursome: Walk of Shame' -- Bad... -- Dirty Girls POV 4 -- Girlvana 5 -- Cream Craving Teens! -- F Me All the Time -- Cougar Sex Workout -- Obsession With Teen Supersluts 2 -- Culo! Latina Booty -- Slutty Sporty Girls 3 -- She Made Me Bust Twice! -- 10 Group Sex Romps -- 34DD Career Cougars -- 12 Inch Black Blitzkrieg -- Mother Load 3 -- 10 Face-Pasted Babes -- Amateur Action -- White Booty Worship -- Sexy Girls Next Door -- Extreme Wet Orgasms -- Cheating White Chicks Lucky Black Sticks -- Glam-Core Bombshells -- 1 on 1 Fun 4 -- Dirty Sex on the Job -- Naughty Neighbors 10 -- Med School MILFs -- Rebeca Linares Is Raw -- Cougars Going Black -- All Asian Fornication -- Big White Butt Cleavage -- Taboo Babes -- Fresh & Easy Ass 2 -- 'Facials: Latina Style!' -- Let's Get Down 2 Sex -- Lez Savor My Sluts -- 100 Percent All Black -- It's Her First Scene! -- 38 Girl Group-gasms -- 11 Filthy DD Pervs -- Chubby Amateurs Spread Wide -- My Trim's a Trapper -- Nasty Cheating Girlfriends -- Bootylicious Overload -- Bi-Sexual Blondes -- 'MILFs: The Legends' -- Swinging Amateur Sex Parties -- Smashing Teen Box -- Tight Wet Lesbian Sluts -- Teens Take 12 Hard Inches -- Kinky Load-Gulpers -- Nympho Screaming O's -- Stuff Her Ballot Box -- '10 Best: 2 Much Booty' -- Creampie POV Teens -- Horny Blonde Housewives -- Her First MILF -- 12 Inches for Horny Pets -- Our Dirty Secret -- Bi-Girlfriend Conquests -- Easy Hard-Bodied Babes -- Mature Hairy Moms -- Finish My Latina Butt -- Coeds Love to Suck It -- Official Next Friday Parody -- Great Ass & Thick Thighs -- Hoops, Sex & Sweat -- Tight Teen Maids -- 12 Inch Group Action -- Feast Upon My Pink! -- 19 YOs Do Me & My Hubby -- '3Way: Variety of Vag' -- The Bush Is Back! -- My Mom's A Porn Star -- Hardcore Lezlove -- Poundin' Pink in Public -- Hardcore Home Videos -- Double Team My Wife -- Plow My Black A... -- Bangin' Busty Brunettes -- MILF School 11 -- Fresh Teen Amateurs -- Coochie Luvin' Lezzies -- Dirty Cheaters Sex Exposed -- Lots O' Girl-Gasms! -- 2 Chicks 1 Big Black Stick -- Screw the Boss -- Pole Grinding Strippers -- Do Me in My Latin Pink! -- Young and Ready to Come -- Twice-Boned MILFs -- Massive Melons -- Oil-Covered Kink Freaks -- Dirty Wild Street Sex -- Sexy Wives Swallow Loads -- Secretaries Love It -- 11 Hard Sex Mash Ups -- Fuck My Wife, I'll Fuck Yours 2 -- Coach C... Bang Me Hard! -- Gushing Lady Geysers -- Deep Inside Angelina Valentine -- POV Junkie 2 -- Lipstick Girls Cram -- 10 Lesbians Get Off -- Punk Rock Kink Freaks -- Depraved 4 Sex -- Iron Man Porn Parody -- Ivory Guys for Black Pie -- 30 Year Old Mommy Got Back -- My Wife Likes 'Em 18 -- 9 Tattooed 'Tangs -- Put That Big Rod in My Tight Hole -- I Heart Busty Blondes -- Jailhouse Fuck -- Bust-a-Nut Teen Facials -- MILF & Daughter Exchange 25 -- Mommies in Heat -- 'Stoya: Heat' -- Her First Gang B... -- It's Beyond Hardcore -- Jenna Confidencial -- 'Cuckolds: Revenge Sex' -- Bangin' Brit Booty -- Black In Bangkok -- All Girl Orgy Sex -- 69 My Pink Lips -- 'Big Bang Theory: A Parody' -- 2 Moms 1 Dong -- 'Amateur Sex: Caught in Public' -- Stretched to the Limit 2 -- Babysitter Threesomes 4 -- 10 Inches Splits 21 Year Olds -- Slam Her in Stockings -- Love My Wife's BFFs -- 'MILF Hunter: Cheating Moms' -- 12 Freaks Done Deep -- Dirty POV Perversion -- Latina Creampies 3 -- Her First Euro Girlfriend -- Kinky Sailor Babes -- Humongous Hard Ons -- Sex 4 Cash Call Girl 3 -- Hard Sex & Smoke -- Deepthroat Amateurs -- Baby Likes It Massive -- Big Boobs, Bigger A... -- Boobaholics Anonymous 8 -- Caribbean Connection -- Old Faithful Orgasms -- Tight Teen Academy -- Amsterdam Suck Babes -- Inked Up & DTF! -- Turn 18 Tonight -- Secret Lesbian Wives -- Get Her to Scream! -- Lesbian Sex Diaries -- Kinky Online Hook-Ups -- Extreme Threesomes -- 2 On 1 Is More Fun -- Glory Hole Gaggers 4 -- 12 Tight Teen Virgins -- Night of the 12 Incher -- She Swallows Huge Loads -- Sloppy Salivating Secretaries -- The Insatiable Miss Saint -- Freshmen Girls Bang Best -- I've Been a Very Bad Girl! -- Deluxe Pink Holes -- Home Made Group Sex Tapes -- MeatLoving Wives -- Dude, She Likes to Get Wet 5 -- My Wife's First Black Man 3 -- Sporty Teen Sluts -- Bang My Latina Box -- FornicAsian 2 -- 12 Inches Deep in Blonde -- Au Natural Nymphos -- Hard Sexslave Filth -- College Girls Sex Adventures -- Filthy Infidelity -- Interracially Taboo -- Desperate for 10 Inches! -- Doctor Squirtsalot -- All American Sex Addicts POV 2 -- Big Boobs at Work -- Spread for Dollars 5 -- Bald Teen Pink -- Big Boob Slutty Coeds -- Anonymous Amateur Hookups -- Carwash Babes, Wet Sex -- Teen League Blowbangs! -- Our First Latin Teen Babysitter -- Celebrity Orgasms -- Sticky Cola -- Asian Cream Pies -- Mail Order MILFs -- Drenched in Sex -- DD Threeway Wives -- 'King Dong: Girls Like It Big' -- Red Light Stripper Sex -- Cougars Cram Poles -- 'Barely Legal 132: Working Girls' -- Teachers -- Lesbian Seductions 42 -- Smothering DDs! -- Black Street Hookers 103 -- Cougar Cafe -- My First Time On Camera -- I'll Suck & Ride You Hard -- Creamy Teacher Poon -- Calling All Big Booty Girls 2 -- Skull F...ing Sluts -- Give Her Your Beef! -- POV Girls Shafted -- Fresh Teens on the Block -- Double Bubble Black Butts -- Private Calls Redial -- Oil Me, Rub Me, & Fuck Me -- Euros N Teens F'ed -- Big Stick for a Teen Cutie 2 -- White Trash MILFs -- Violate My Tight Teen Hole -- Amateur Teen Sextapes -- Massive Interracial Facials -- Sharing the Load 5 -- Dirty Movies -- Tappin' Nurse A... -- DD Moms Need Rods -- It's Okay! She's My Stepsister 3 -- Her First Sex Party -- Private Pictures -- Rammin' Foreign Throats -- Big White Bootys -- Virgin Cowgirls -- 'Can''t Be Sanford & Son: A Parody' -- Spread Me Wide Open -- Mom's First Porno 2 -- Fill Her Tight Hole -- Sex-Crazed Schoolgirls -- Living Dolls -- Fuck Me Till I Squirt -- Real College Orgies -- Dirty Massage Fuck -- Naughty Nymphos Next Door 13 -- All Asian Fornication! -- Teenage Sex Queens -- Intimate Lesbian Seductions -- Cougars Take It Deep -- Makin' Your Mama Gag -- Creamy Latin Teens -- Daddy Knows Best 2 -- Cheating Wife Sex Tapes 2 -- College Girl Sex Adventures -- Dripping Wet Gushers -- Cheating Wives Bang Harder -- Kinky Stepsisters 3 -- The Con Job -- Working Girls -- 7 Lives Xposed -- Big Boob Doctor Do Me -- MILFs Like It Black 6 -- Army Slut Bangjob -- Barely Legal POV 12 -- 4 Ever Brunettes -- Swingers -- Big Breast Fest 17 -- Juicy MILF Butts -- Mother Load 4 -- All Interracial 11 -- Milf Lesbian Threesomes 4 -- Finish My Latina A... -- Canoga Park -- Begging for Black -- This Aint the Partridge Family -- 4Way Slut Swap -- 18 YO's First Sex Tape -- I'm a Teenage Slut 3 -- Cougar Teen Lick-fest 9 -- Brea's Miami Fuck Party -- Temptress -- Hot Latin Sluts Adventures 59 -- Hot Showers -- My Horny Black GF 4 -- Girls Hunting Girls 24 -- Real Amateurs Do It for Dollars -- Blondes Boned Deep & Hard -- Amateur Sologasms -- Asian Spankin' Sorority Girls 2 -- Mommy Loves Fat Salami -- DD Bush Whackers -- '10 Best: Black & Tight' -- Get Kinky With Me! -- Belgium's Best Boobs -- Real Coed Bang Party -- Eager Young Interns -- Girl-Girl Web Cam Sex -- Booty Hunters 7 -- Porn Stars at Home -- Amateurs Love to Swallow! -- Dazed & Glazed 3 -- Rubber Cats -- Wet Juicy Booty 4 -- Blonde Obsession -- Extreme Sex Fiends -- 3way Lesbian Kink -- Battle of the Booty -- First Time Latina Sex -- All Flavas of Pink -- She Wants More Muff -- Blow Your Load On My Teen Face -- First Rate Amateurs -- Dirty Babysitters Club -- 15 Insane Orgy Babes -- Sit on My Face -- Hot, Horny & Nasty -- 3 Housewives 1 Lucky Guy -- Dual Holes for a Pole -- Consulta Erotica con Natacha -- Sex Crazed Girl Next Door 4 -- XXX Cheerleader Tryouts -- Sexy CEOs Take It Deep -- Too Big 2 Bang Teens -- Asian & Latina Sluts -- Handful of Boob -- Monster Curves 7 -- Caught on Camera Amateurs 3 -- Afterschool Lesbians 4 -- Freshman Girls Bang Best -- Ebony Apple Bottoms -- 3 Poles 1 Teen Hole -- '10 Best: Facials' -- Working Girl -- Attack of 12 Inches -- Flick My Teen Bean -- 11 Lesbian Lickfest -- Got My Hubby a Teen -- Casino Conrad -- Large Breast Lezbos -- Crazy Hot Sex Dolls -- Czech Teen Facials -- Attack of Franken-Boobs 2 -- 2 Kinky for Boys -- Swingers Bang Teens 7 -- 'Big Naturals 10: Bouncin'' Boobs' -- Group Sex Amateurs -- Ex-Wife Sex Tapes 2 -- Fuck Me Here, I Don't Care Who Sees -- Bad Girls Have Tattoos -- 'Extreme Ass 2: Deep Penetration' -- 1970's Porno Parody -- Latex Sex Slaves -- Her Boobs Are E-Cup -- Amateurs Get Sticky -- Freshmen Ride 10 Inches -- 18 Latin N Amateur 2 -- Your Mom's Ass Is Tight 2 -- She Begs 4 Hard Sex -- Costume Sex Party -- Just Ravage My Holes -- 2013 Acrobatic Booty -- '2 Holes: Wife & Teen' -- Don't Talk! Just Bang! -- Tight Tip Top T... -- Pool Party Pumpings -- Lesbian Liplickers -- 3 Way Gushers -- Long Legs Attached 2 Slutty Babes -- Unthinkable Orgasms -- Dat All Black Kink -- Muff Munchin' Nurses -- Tight, Rich & Raunchy -- All Girl Lesbian Nymphos -- 10 MILF & Teen Threeways -- DD Sex in Stockings -- I Can Take On 2 Men! -- L.A. Latin Booty -- Teen POV Pink -- Pounded in Public Places -- Consulta Erótica con Natacha -- Busty MILF Booty -- Horny Prague Amateurs -- Neighborhood Cheating Stories -- Teen Orgies Caught on Tape -- Nino Dolce, Il Cucinero Dell'Amore -- Dirty Tight Latinas -- Uninhibited -- Night Calls -- Mind-Blowing Wet Orgasms -- 12in Menage a Trois -- Eat Me Until I Drip -- Insatiable Couples -- Hammered Into Submission -- Raw Interracial Relations -- Kinky G-Spot Orgasms -- MILFs Make Me Bust -- Black in My Holes! -- Please! Pop in My Box! -- Ur Mom Has Nice TaTas -- Freaky Trophy Wives -- Fat Latina Butts -- Deep Teen Creampies -- Bang My Secretary 2 -- Big Butts Bust Nuts -- Amateur Girls Wet and Horny 3 -- Cheerleaders Gone Bad 2 -- Nurses, Part 1 -- MILFs Take It Big & Black -- Tight Asian Sluts 4 -- Web Cam Wife Hook-Up -- 40 Inch Bubble Butts -- Soaking Wet Orgasms -- Dirty DD Wives -- Do Me Freaking Harder! -- I Spread 4 My Teacher -- 42 Inch Mega-Booty -- Flashdance Sex Spoof -- Coeds N Glory Holes 4 -- Do My Big Butt In Public -- Kinky Strap-On Sex -- Japan Girls Go Black -- Hot Showers 17 -- Now That's Hardcore Sex! -- Dripping Sugarwalls -- Barely Legal Jungle Fever 2 -- View With a Booty -- Latina Assploitation -- 6 Coeds Riding Boners 3 -- Tiffany Mynx Gangbang 2 -- Busty Housewives -- Mommy Loves Big Black D -- Extreme Butt Sluts 2 -- My Mom Likes Girls 2 -- 'The Big Lebowski: A Parody' -- Squirting MILF Orgasms -- Luscious Latina in My Bed 2 -- Horned Up N Lingerie -- DD Wild Wet Wives -- Hardcore Latina Threesomes -- Filthy Freshman Coeds 2 -- 3 Way Booty Array -- Cheating MILFs Take Big Black Dongs -- Filthy Wet Taboo Sex -- Crazy ChinaTown -- 3 Ways & Lesbians -- Candid Sex Cam -- Hot Blondes Prefer Big Men -- Lick My Pink Hole! -- Xtreme Lesbians 3 -- Bra Busters 3 -- Hot Wax Drippers -- Amateur Face Blasts for Cash -- I Banged The Boss' Busty Wife -- European Hardcore -- Latin Booty Pumpers -- Ghetto Booty 32 -- Horny Dirty Super Sexfreaks -- Corrupted Cougars -- MILFs Take All 12 Inches -- Fresh Teen Booty 8 -- Slutty Sporty Girls -- Teen Banging Perverts -- Pretty Dirty 3 -- 38DD Stewardess Spank -- Rich Babes Rammed -- Horny Booty Babes -- Dirty MILF Group Sex -- I Love Black Sluts 2 -- Do Me in the Shower -- Love You Long Time 12 -- My Neighbor's Daughter -- Dark Meat White Treat 5 -- 7 Sluts Sexfest -- Natural DD P.O.V. -- Tight Young Booty -- Sex Party Nymphos -- Nubian Sex Dolls -- Spread My Leg's and Fuck Me -- Latinas Spread 4 Penetration 4 -- Addicted to Lesbian MILFs 5 -- Mommy Does It Best 3 -- 34DD's? Yes Please! -- Daughter Does Porn -- Lost Porn Auditions -- 3way Slave Sex Dolls -- Webcam Sex Hookups -- Bang My Wife Please -- 12 Insane Sex Acts -- Amateur Girls Next Door -- Amateur Teen Debauchery 12 -- Sex Tutor -- Dripping Wet MILF Lips -- Fresh Meat 12 -- Sexfreaks in Heat -- '3Way Newbie Bootys: Casey''s Camper' -- 2 Freaky 2 Filthy -- Monster Meat Babes 2 -- 12 Lesbian Hole Lickers -- Big Boob Facial Fantasies -- Teen Orgy Sex Party -- Freaky Seduction 2 -- Nurses, Part 2 -- Just Over 18 20 -- Digital Diaries -- Pin-Up Perversions -- Kinky Office MILFs -- I'm a Very Bad Girl -- Delve Deep in My Pink -- Busty & Lusty -- Hardcore Sex Rampage -- Look at That Butt! -- Big Butts N Big C... 2 -- 18 & Sexy POV 6 -- Skip Trace -- It's OK! She's My Stepmom -- Fresh Meat 25 -- Sweet Cream Pies 5 -- Only in Your Wet Dreams 2 -- Real Big Racks 5 -- Fishnet Fanatics 9 -- Dark Side of the Sun -- Creamy Teen Facials 3 -- Giant Gazongas 7 -- Amateur Beach Bimbos 4 -- Spankworthy Sluts -- Double Decker Sex Fest 12 -- Big Wet Loads POV 9 -- Bubble Butt Black Sluts -- Lick My Girlfriend's Box 3 -- Deep in Amateur Pink 4 -- High Rollin' in the Champagne Room -- Sit on My Face 7 -- Housewife Orgasms 3 -- Me, Myself & I -- Cheating Latinas Love Big Mouthfuls -- Curvy Coeds Love Big D -- Plow My Big Round Ass -- College Orgy Pile Ups! -- Drenched in Oil 3 -- The Cool Crowd -- Deep in Latin Cheeks 5 -- Oral & Fuck Jobs 4 -- MILF Man Eaters 6 -- Unplanned Orgies 12 -- Wild Side -- Just Over 18 21 -- Banging Your Slutty Wife 2 -- Amateur Cutie Creampies 2 -- Naughty Cougars Squishy Wet Holes -- Carolina Jones & the Lust Crusade -- Lesbian Road Queens 23 -- Gangbang Facials -- It's Okay! She's My Stepmother 2 -- 18 YO Orgy Sluts -- Big Breasted Teen Babysitter -- All-Girl Experiment -- Casual 3Some Sex -- Sexy POV 6 -- Boobs Ahoy 11 -- Cheating Wives Go Deep -- Fresh and Easy 3 -- Big Boobs Dark Skin 4 -- Big & Real Euro Boobies 4 -- 'Going Solo: Me, Myself & I' -- 'The Real L Word XXX Parody: NYC Edition' -- Lusting for Love -- Finish On My Big White Ass -- 10 Inches in Submissive Asians -- Horny Wives in Lingerie -- Curvy Sluts N Heat -- Animalistic Lust 12 -- Sex, Lies and Blackmail -- Busty Big Booty Creampies -- Dorm Room Orgy Sluts -- Give Me Pink 11 -- Skip Trace 2 -- Big Breasts in Uniform -- Don't Pull Out! \ No newline at end of file diff --git a/lib/models/zquote.rb b/lib/models/zquote.rb deleted file mode 100644 index 4f1cb46..0000000 --- a/lib/models/zquote.rb +++ /dev/null @@ -1,2 +0,0 @@ -class Zquote < Sequel::Model -end \ No newline at end of file diff --git a/lib/models/ztell.rb b/lib/models/ztell.rb deleted file mode 100644 index 7617574..0000000 --- a/lib/models/ztell.rb +++ /dev/null @@ -1,3 +0,0 @@ -class Ztell < Sequel::Model - -end \ No newline at end of file diff --git a/lib/models/zuser.rb b/lib/models/zuser.rb deleted file mode 100644 index c26cc33..0000000 --- a/lib/models/zuser.rb +++ /dev/null @@ -1,61 +0,0 @@ -class Zuser < Sequel::Model - - ## roles - def is_owner? - return false if role.nil? - true if role.to_sym == :q - end - - def is_admin? - return false if role.nil? - true if role.to_sym == :q || :a - end - - def is_op? - return false if role.nil? - true if role.to_sym == :q || :a || :o - end - - def is_halfop? - return false if role.nil? - true if role.to_sym == :q || :a || :o || :h - end - - def is_voice? - return false if role.nil? - true if role.to_sym == :q || :a || :o || :h || :v - end - - def is_nobody? - return false if role.nil? - true if role.to_sym == :q || :a || :o || :h || :v - true if self.role == 'nobody' || self.role.nil? - end - - def is_ircop? - return false if role.nil? - # Always obey the cops - self.ircop - end - - ## Display the Role - def level - return 'nobody' if role.nil? - - case role.to_sym - when :q - 'Owner' - when :a - 'Admin' - when :o - 'Operator' - when :h - 'Half-Op' - when :v - 'Voiced' - else - 'nobody' - end - end - -end \ No newline at end of file diff --git a/lib/plugins/jargonfile.rb b/lib/plugins/jargonfile.rb deleted file mode 100644 index d36610b..0000000 --- a/lib/plugins/jargonfile.rb +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- - -require 'open-uri' -require 'cgi' - -module Plugins - class JargonFile - include Cinch::Plugin - set plugin_name: "Jargon File", help: "Gets the entry from the Jargon File.\nUsage: `!jargon `" - - match /jargon (.+)/ - - def lookup(word) - begin - x = word[0].gsub(/([\(\/124@])/, '0').upcase; - - term = word; - #special cases for when the filename is different than the title - case term - when /^([\(])/ - term.gsub!(/^([\(])/, ''); - term.gsub!(/([\)]$)/, ''); #hackety hack - when /^([\/])/ - term.gsub!(/^([\/])/, ''); - when /([\s\W]+$)/ - term.gsub!(/([\s\W]+$)/, ''); - when /^([0])/ - term.gsub!(/^([0])/, 'numeral-zero'); - when /^([1])/ - term.gsub!(/^([1])/, 'one-'); - when /^([2])/ - term.gsub!(/^([2])/, 'infix-two'); - when /^([4])/ - term.gsub!(/^([4])/, 'code-4'); - when /^([@])/ - term.gsub!(/^([@])/, 'at'); - when /([\*])/ - term.gsub!(/([\*])/, '-asterisk-'); - end - - term.gsub!(/([\s\W])/, '-'); - - #url = "http://www.urbandictionary.com/define.php?term=#{CGI.escape(word)}" - url = "http://www.catb.org/jargon/html/#{x}/#{term}.html" - page = Nokogiri::HTML(open(url)); - key = CGI.unescape_html page.at("dt##{term}").text.gsub(/\s+/, ' ') rescue nil - definition = CGI.unescape_html page.at("dd > p").text.gsub(/\s+/, ' ') rescue nil - output = "#{key} -- #{definition.gsub(/^(.{100}[^\s]*)(.*)/m) { $2.empty? ? $1 : $1 + '…' }} (#{url})"; - definition != nil ? output : nil; - rescue OpenURI::HTTPError => err - "I couldn't find that! Did you misspell it? Make sure that all words are capitalized properly." - end - end - - def execute(m, word) - - m.reply(lookup(word) || "No results found", false) - end - end -end diff --git a/lib/stats.yml b/lib/stats.yml deleted file mode 100644 index c2fb82a..0000000 --- a/lib/stats.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -:Plugins::Forecast: 2 diff --git a/locales/8ball.yml b/locales/8ball.yml new file mode 100644 index 0000000..e69de29 diff --git a/lib/locales/attack.yml b/locales/attack.yml similarity index 100% rename from lib/locales/attack.yml rename to locales/attack.yml diff --git a/lib/locales/ircop.yml b/locales/ircop.yml similarity index 100% rename from lib/locales/ircop.yml rename to locales/ircop.yml diff --git a/lib/locales/macros.yml b/locales/macros.yml similarity index 100% rename from lib/locales/macros.yml rename to locales/macros.yml diff --git a/locales/meme.yml b/locales/meme.yml new file mode 100644 index 0000000..e69de29 diff --git a/lib/plugins/8ball.rb b/plugins/8ball.rb similarity index 95% rename from lib/plugins/8ball.rb rename to plugins/8ball.rb index 5ba4d59..8bbbc22 100644 --- a/lib/plugins/8ball.rb +++ b/plugins/8ball.rb @@ -53,3 +53,6 @@ def execute(m, s) end end + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Eightball diff --git a/lib/admin/bot.rb b/plugins/admin/bot.rb similarity index 82% rename from lib/admin/bot.rb rename to plugins/admin/bot.rb index 6ff7f7d..0f81799 100644 --- a/lib/admin/bot.rb +++ b/plugins/admin/bot.rb @@ -9,7 +9,7 @@ class BotAdmin match /nick (.+)/, method: :nick def nick(m, nick) - return unless get_user(m).is_admin? + return unless has_role?(m, :owner) bot.nick = nick synchronize(:nickchange) do @bot.handlers.dispatch :admin, m, "My nick got changed from #{@bot.last_nick} to #{@bot.nick} by #{m.user.nick}", m.target @@ -18,14 +18,14 @@ def nick(m, nick) match /mode (.+)/, method: :mode def mode(m, nick) - return unless get_user(m).is_admin? + return unless has_role?(m, :owner) bot.modes = m end match /e (.+)/, method: :boteval match /eval (.+)/, method: :boteval def boteval(m, s) - return unless get_user(m).is_owner? + return unless has_role?(m, :owner) eval(s) rescue => e m.user.msg "eval error: %s\n- %s (%s)" % [s, e.message, e.class.name] @@ -34,7 +34,7 @@ def boteval(m, s) match /ereturn (.+)/, method: :botevalreturn match /er (.+)/, method: :botevalreturn def botevalreturn(m, s) - return unless get_user(m).is_owner? + return unless has_role?(m, :owner) return m.reply eval(s) rescue => e m.user.msg "eval error: %s\n- %s (%s)" % [s, e.message, e.class.name] @@ -43,11 +43,15 @@ def botevalreturn(m, s) match /evalmsg (.+)/, method: :botevalmsg match /em (.+)/, method: :botevalmsg def botevalmsg(m, s) - return unless get_user(m).is_owner? + return unless has_role?(m, :owner) return m.user.msg eval(s) rescue => e m.user.msg "eval error: %s\n- %s (%s)" % [s, e.message, e.class.name] end end -end \ No newline at end of file +end + + +# AutoLoad +Zeta.config.plugins.plugins.push Admin::BotAdmin \ No newline at end of file diff --git a/lib/admin/channel.rb b/plugins/admin/channel.rb similarity index 82% rename from lib/admin/channel.rb rename to plugins/admin/channel.rb index 6bd38d3..649f8a4 100644 --- a/lib/admin/channel.rb +++ b/plugins/admin/channel.rb @@ -1,4 +1,4 @@ -require_relative '../helpers/check_user' +# require_relative '../helpers/check_user' module Admin class ChannelAdmin @@ -12,7 +12,7 @@ class ChannelAdmin match /join (.+)/, method: :join def join(m, channel) - return unless get_user(m).is_op? + return unless has_role?(m, :op) channel.split(", ").each {|ch| Channel(ch).join @bot.handlers.dispatch :admin, m, "Attempt to join #{ch.split[0]} by #{m.user.nick}...", m.target @@ -21,7 +21,7 @@ def join(m, channel) match /part(?: (\S+))?(?: (.+))?/, method: :part, group: :part def part(m, channel=nil, msg=nil) - return unless get_user(m).is_op? + return unless has_role?(m, :op) channel ||= m.channel.name msg ||= m.user.nick Channel(channel).part(msg) if channel @@ -30,7 +30,7 @@ def part(m, channel=nil, msg=nil) match /quit(?: (.+))?/, method: :quit, group: :quit def quit(m, msg=nil) - return unless get_user(m).is_owner? + return unless has_role?(m, :owner) msg ||= m.user.nick @bot.handlers.dispatch :admin, m, "I am being shut down NOW!#{" - Reason: " + msg unless msg.nil?}", m.target sleep 2 @@ -40,4 +40,7 @@ def quit(m, msg=nil) end -end \ No newline at end of file +end + +# AutoLoad +Zeta.config.plugins.plugins.push Admin::ChannelAdmin \ No newline at end of file diff --git a/lib/admin/fifo.rb b/plugins/admin/fifo.rb similarity index 83% rename from lib/admin/fifo.rb rename to plugins/admin/fifo.rb index 8df75cb..62ebff9 100644 --- a/lib/admin/fifo.rb +++ b/plugins/admin/fifo.rb @@ -62,11 +62,11 @@ class Fifo listen_to :disconnect, :method => :close_fifo def open_fifo(msg) - File.mkfifo(config[:path] || raise(ArgumentError, "No FIFO path given!")) - File.chmod(config[:mode] || 0666, config[:path]) + File.mkfifo("#{$root_path}/tmp/bot" || raise(ArgumentError, "No FIFO path given!")) + File.chmod(Zconfig.admin.fifo.mode || 0666, "#{$root_path}/tmp/bot") - File.open(config[:path], "r+") do |fifo| - bot.info "Opened named pipe (FIFO) at #{config[:path]}" + File.open("#{$root_path}/tmp/bot", "r+") do |fifo| + bot.info "Opened named pipe (FIFO) at #{"#{$root_path}/tmp/bot"}" fifo.each_line do |line| msg = line.strip @@ -78,9 +78,13 @@ def open_fifo(msg) end def close_fifo(msg) - File.delete(config[:path]) - bot.info "Deleted named pipe #{config[:path]}." + File.delete("#{$root_path}/tmp/bot") + bot.info "Deleted named pipe #{"#{$root_path}/tmp/bot"}." end end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Admin::Fifo diff --git a/lib/admin/plugins.rb b/plugins/admin/plugins.rb similarity index 96% rename from lib/admin/plugins.rb rename to plugins/admin/plugins.rb index 92931e9..f8637e8 100644 --- a/lib/admin/plugins.rb +++ b/plugins/admin/plugins.rb @@ -1,4 +1,4 @@ -require_relative '../helpers/check_user' +# require_relative '../helpers/check_user' module Admin class Plugins @@ -101,3 +101,7 @@ def set_option(m, plugin, option, value) end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Admin::Plugins diff --git a/lib/plugins/attack.rb b/plugins/attack.rb similarity index 96% rename from lib/plugins/attack.rb rename to plugins/attack.rb index 480468f..305bbcb 100644 --- a/lib/plugins/attack.rb +++ b/plugins/attack.rb @@ -49,3 +49,6 @@ def random_attack!(targets, assailant) end end end + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Attack \ No newline at end of file diff --git a/lib/plugins/botinfo.rb b/plugins/botinfo.rb similarity index 97% rename from lib/plugins/botinfo.rb rename to plugins/botinfo.rb index 098e854..5d425a3 100644 --- a/lib/plugins/botinfo.rb +++ b/plugins/botinfo.rb @@ -74,3 +74,6 @@ def execute_help(m, name) end end + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::BotInfo \ No newline at end of file diff --git a/lib/plugins/dcc.rb b/plugins/dcc.rb similarity index 66% rename from lib/plugins/dcc.rb rename to plugins/dcc.rb index 2e67a20..ec11c01 100644 --- a/lib/plugins/dcc.rb +++ b/plugins/dcc.rb @@ -1,4 +1,4 @@ -require_relative '../helpers/check_user' +# require_relative '../helpers/check_user' module Plugins class DCC @@ -17,8 +17,11 @@ def dcc private def github() - github = Github.new oauth_token: ENV['GITHUB_KEY'] + github = Github.new oauth_token: Zsecrets.keys.github end end -end \ No newline at end of file +end + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::DCC \ No newline at end of file diff --git a/lib/plugins/dice.rb b/plugins/dice.rb similarity index 92% rename from lib/plugins/dice.rb rename to plugins/dice.rb index 1765042..5a3e51a 100644 --- a/lib/plugins/dice.rb +++ b/plugins/dice.rb @@ -24,3 +24,6 @@ def execute(m, s) end end end + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Dice diff --git a/lib/plugins/dice/boneroller.rb b/plugins/dice/boneroller.rb similarity index 100% rename from lib/plugins/dice/boneroller.rb rename to plugins/dice/boneroller.rb diff --git a/lib/plugins/discord.rb b/plugins/discord.rb similarity index 99% rename from lib/plugins/discord.rb rename to plugins/discord.rb index 939c450..6490b7d 100644 --- a/lib/plugins/discord.rb +++ b/plugins/discord.rb @@ -415,3 +415,8 @@ def get_time(m, time) end end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Disdate +Zeta.config.plugins.plugins.push Plugins::Fnord diff --git a/plugins/gem.rb b/plugins/gem.rb new file mode 100644 index 0000000..2d04528 --- /dev/null +++ b/plugins/gem.rb @@ -0,0 +1,14 @@ +require 'cinch/plugins/quotes' +require 'cinch-convert' +require 'cinch-calculate' +require 'cinch-wikipedia' +require 'weather-underground' + +Zeta.config.plugins.plugins << Cinch::Plugins::Wikipedia +Zeta.config.plugins.plugins << Cinch::Plugins::Calculate +Zeta.config.plugins.plugins << Cinch::Plugins::Convert +Zeta.config.plugins.plugins << Cinch::Plugins::Quotes + +Zeta.config.plugins.options[Cinch::Plugins::Calculate][:units_path] = '/usr/bin/units' +Zeta.config.plugins.options[Cinch::Plugins::Convert][:units_path] = '/usr/bin/units' +Zeta.config.plugins.options[Cinch::Plugins::Quotes][:quotes_file] = $root_path + '/data/quotes.yml' \ No newline at end of file diff --git a/lib/plugins/help.rb b/plugins/help.rb similarity index 93% rename from lib/plugins/help.rb rename to plugins/help.rb index e01c1bb..72a31f3 100644 --- a/lib/plugins/help.rb +++ b/plugins/help.rb @@ -24,4 +24,8 @@ def execute_list(m) m.user.notice("All #{list.size} currently loaded plugins for #{@bot.nick}:\n#{list.to_sentence}.\nTo view help for a plugin, use `!help `.") end end -end \ No newline at end of file +end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::BotHelp \ No newline at end of file diff --git a/plugins/helpers/check_user.rb b/plugins/helpers/check_user.rb new file mode 100644 index 0000000..a14683f --- /dev/null +++ b/plugins/helpers/check_user.rb @@ -0,0 +1,44 @@ +module Cinch + module Helpers + # Checks a user's access in the specified channel. + # @param channel [Channel, String] A Channel object or string that is the name of the channel. (i.e. #chat) + # @param user [User] A User object + # @param ignored_members [Array] An array of modes that this method will ignore + # @return [Boolean] Returns True if the user has any channel modes other than the ignored modechars + # @author Mark Seymour/Azure + def check_user(channel, user, ignored_members=nil) + ignored_members ||= [] # If nil, assign an empty array. + users = Channel(channel).users # All users from supplied channel + modes = @bot.irc.isupport["PREFIX"].keys - ignored_members + modes.any? {|mode| users[user].include?(mode)} + end + + def has_role?(m, role=:voice) + return unless m.user.authed? + case role + when :owner + true if Zconfig.roles.owner.split(' ').include? m.user.nick + when :admin + true if Zconfig.roles.owner.split(' ').include? m.user.nick + true if Zconfig.roles.admin.split(' ').include? m.user.nick + when :operator + true if Zconfig.roles.owner.split(' ').include? m.user.nick + true if Zconfig.roles.admin.split(' ').include? m.user.nick + true if Zconfig.roles.operator.split(' ').include? m.user.nick + when :halfop + true if Zconfig.roles.owner.split(' ').include? m.user.nick + true if Zconfig.roles.admin.split(' ').include? m.user.nick + true if Zconfig.roles.operator.split(' ').include? m.user.nick + true if Zconfig.roles.halfop.split(' ').include? m.user.nick + when :voice + true if Zconfig.roles.owner.split(' ').include? m.user.nick + true if Zconfig.roles.admin.split(' ').include? m.user.nick + true if Zconfig.roles.operator.split(' ').include? m.user.nick + true if Zconfig.roles.halfop.split(' ').include? m.user.nick + true if Zconfig.roles.voice.split(' ').include? m.user.nick + else + false + end + end + end +end \ No newline at end of file diff --git a/lib/helpers/is_channel_disabled.rb b/plugins/helpers/is_channel_disabled.rb similarity index 100% rename from lib/helpers/is_channel_disabled.rb rename to plugins/helpers/is_channel_disabled.rb diff --git a/lib/helpers/natural_language.rb b/plugins/helpers/natural_language.rb similarity index 100% rename from lib/helpers/natural_language.rb rename to plugins/helpers/natural_language.rb diff --git a/lib/helpers/stats.rb b/plugins/helpers/stats.rb similarity index 100% rename from lib/helpers/stats.rb rename to plugins/helpers/stats.rb diff --git a/lib/helpers/table_format.rb b/plugins/helpers/table_format.rb similarity index 100% rename from lib/helpers/table_format.rb rename to plugins/helpers/table_format.rb diff --git a/lib/plugins/link_info.rb b/plugins/link_info.rb similarity index 97% rename from lib/plugins/link_info.rb rename to plugins/link_info.rb index c190316..9b5755c 100644 --- a/lib/plugins/link_info.rb +++ b/plugins/link_info.rb @@ -80,3 +80,7 @@ def execute(msg, url) end end + +# AutoLoad +# Zeta.config.plugins.plugins.push Plugins::LinkInfo + diff --git a/lib/plugins/macros.rb b/plugins/macros.rb similarity index 93% rename from lib/plugins/macros.rb rename to plugins/macros.rb index a95bdba..7e797d0 100644 --- a/lib/plugins/macros.rb +++ b/plugins/macros.rb @@ -1,6 +1,6 @@ # coding: utf-8 require 'yaml' -require_relative '../helpers/check_user' +# require_relative '../helpers/check_user' module Plugins class Macros @@ -14,15 +14,15 @@ class Macros def initialize *args super - @macros = YAML::load_file(File.join(__dir__, '../locales/macros.yml')) + @macros = YAML::load_file($root_path + '/locales/macros.yml') end match "reload macros", method: :execute_reloadmacros, react_on: :private, use_prefix: false def execute_reloadmacros m - return unless get_user(m).is_op? + return unless has_role?(m, :op) begin - @macros = YAML::load_file(File.join(__dir__, '../locales/macros.yml')) + @macros = YAML::load_file($root_path + '/locales/macros.yml') m.user.notice "Macros have been reloaded." rescue m.user.notice "Reloading macros has failed: #{$!}" @@ -115,3 +115,7 @@ def replace_tokens(input, macro, channel, user) end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Macros diff --git a/lib/plugins/movie.rb b/plugins/movie.rb similarity index 96% rename from lib/plugins/movie.rb rename to plugins/movie.rb index 94029df..03ae63d 100644 --- a/lib/plugins/movie.rb +++ b/plugins/movie.rb @@ -54,3 +54,7 @@ def query_movie(m) end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Movies diff --git a/lib/plugins/porno.rb b/plugins/porno.rb similarity index 89% rename from lib/plugins/porno.rb rename to plugins/porno.rb index d655c23..d105f4c 100644 --- a/lib/plugins/porno.rb +++ b/plugins/porno.rb @@ -21,4 +21,8 @@ def execute_porno(m, search) end end end -end \ No newline at end of file +end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Porno \ No newline at end of file diff --git a/lib/plugins/rainbow.rb b/plugins/rainbow.rb similarity index 96% rename from lib/plugins/rainbow.rb rename to plugins/rainbow.rb index 43a2ead..679a6db 100644 --- a/lib/plugins/rainbow.rb +++ b/plugins/rainbow.rb @@ -60,3 +60,7 @@ def execute_eyerape(m, string) end end +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Rainbow + + diff --git a/lib/plugins/register.rb b/plugins/register.rb similarity index 100% rename from lib/plugins/register.rb rename to plugins/register.rb diff --git a/lib/plugins/russian_roulette.rb b/plugins/russian_roulette.rb similarity index 96% rename from lib/plugins/russian_roulette.rb rename to plugins/russian_roulette.rb index dd7074d..ebd5aef 100644 --- a/lib/plugins/russian_roulette.rb +++ b/plugins/russian_roulette.rb @@ -1,4 +1,4 @@ -require_relative '../helpers/check_user' +# require_relative '../helpers/check_user' module Plugins class RussianRoulette @@ -83,3 +83,7 @@ def end_game(channel, premature=false) end end + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::RussianRoulette + diff --git a/lib/plugins/silly.rb b/plugins/silly.rb similarity index 98% rename from lib/plugins/silly.rb rename to plugins/silly.rb index eb6d851..1157582 100644 --- a/lib/plugins/silly.rb +++ b/plugins/silly.rb @@ -156,3 +156,7 @@ def heavymetalize(m, s) end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Silly diff --git a/lib/plugins/tell.rb b/plugins/tell.rb similarity index 100% rename from lib/plugins/tell.rb rename to plugins/tell.rb diff --git a/lib/plugins/urban.rb b/plugins/urban.rb similarity index 94% rename from lib/plugins/urban.rb rename to plugins/urban.rb index 4c61bf6..f0de44a 100644 --- a/lib/plugins/urban.rb +++ b/plugins/urban.rb @@ -45,4 +45,8 @@ def search(query) e.message end end -end \ No newline at end of file +end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::UrbanDictionary \ No newline at end of file diff --git a/lib/plugins/vote.rb b/plugins/vote.rb similarity index 97% rename from lib/plugins/vote.rb rename to plugins/vote.rb index 4a54834..32692be 100644 --- a/lib/plugins/vote.rb +++ b/plugins/vote.rb @@ -90,3 +90,7 @@ def generate_vote_id end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Vote diff --git a/lib/plugins/weather.rb b/plugins/weather.rb similarity index 95% rename from lib/plugins/weather.rb rename to plugins/weather.rb index c527f0d..b2b8a28 100644 --- a/lib/plugins/weather.rb +++ b/plugins/weather.rb @@ -50,7 +50,7 @@ def weather(msg, query) # @param zipcode [String] zipcode # @return [String] location-specific parameter for getting conditions. def geolookup(zipcode) - location = JSON.parse(open("http://api.wunderground.com/api/#{ENV['WUNDERGROUND_KEY']}/geolookup/q/#{zipcode}.json").read) + location = JSON.parse(open("http://api.wunderground.com/api/#{Zsecret.key.wunderground}/geolookup/q/#{zipcode}.json").read) location['location']['l'] rescue nil @@ -61,7 +61,7 @@ def geolookup(zipcode) # @param location [String] provided by the geolookup method # @return [OpenStruct] parsed weather conditions. def get_conditions(location) - data = JSON.parse(open("http://api.wunderground.com/api/#{ENV['WUNDERGROUND_KEY']}/conditions#{location}.json").read) + data = JSON.parse(open("http://api.wunderground.com/api/#{Zsecret.key.wunderground}/conditions#{location}.json").read) current = data['current_observation'] location_data = current['display_location'] @@ -124,3 +124,7 @@ def weather_summary(data) end end end + + +# AutoLoad +Zeta.config.plugins.plugins.push Plugins::Forecast diff --git a/lib/plugins/wolfram.rb b/plugins/wolfram.rb similarity index 67% rename from lib/plugins/wolfram.rb rename to plugins/wolfram.rb index 860c578..beecaba 100644 --- a/lib/plugins/wolfram.rb +++ b/plugins/wolfram.rb @@ -4,12 +4,12 @@ class Wolfram include Cinch::Plugin - plugin "wolfram" + # plugin "wolfram" match /((what|how) .+)/ def self.search(query) - wolfram = WolframAlpha::Client.new(ENV['WOLFRAM_KEY'], options = {:timeout => 1}) + wolfram = WolframAlpha::Client.new(Zsecret.key.wolfram, options = {:timeout => 1}) response = wolfram.compute(query) if response.result @@ -22,4 +22,7 @@ def self.search(query) def execute(m, query) m.reply self.class.search(query), true end -end \ No newline at end of file +end + +# AutoLoad +# Zeta.config.plugins.plugins.push Plugins::Wolfram \ No newline at end of file diff --git a/zbot.god b/zbot.god deleted file mode 100644 index 9152f99..0000000 --- a/zbot.god +++ /dev/null @@ -1,5 +0,0 @@ -God.watch do |w| - w.name = 'Zbot' - w.start = 'ruby /home/liothen/Zbot/zbot.rb' - w.keepalive(:memory_max => 150.megabytes) -end \ No newline at end of file diff --git a/zbot.rb b/zbot.rb deleted file mode 100644 index 43cb50b..0000000 --- a/zbot.rb +++ /dev/null @@ -1,19 +0,0 @@ -# Required Libraries -require 'libxml' -require 'dotenv' -require 'cinch' -require 'open-uri' -require 'nokogiri' -require 'json' - - -# Load Enviromental Variables -Dotenv.load - -# Load Cinch -require_relative 'lib/core/admin' -require_relative 'lib/core/models' -require_relative 'lib/core/plugins' -require_relative 'lib/core/helpers' -require_relative 'lib/cinch' - diff --git a/zeta.rb b/zeta.rb new file mode 100644 index 0000000..1fa1650 --- /dev/null +++ b/zeta.rb @@ -0,0 +1,47 @@ +$:.unshift(File.expand_path('lib', __FILE__)) +$root_path = File.dirname(File.absolute_path(__FILE__)) + +require 'libxml' +require 'require_all' +require 'cinch' +require 'open-uri' +require 'nokogiri' +require 'json' +require 'ostruct' +require 'yaml' +require 'recursive_open_struct' + +# Load Config Data +Zconf = RecursiveOpenStruct.new( YAML.load_file($root_path + '/config/config.yml') ) +Zsecret = RecursiveOpenStruct.new( YAML.load_file($root_path + '/config/secret.yml') ) + +# Initilize the rest of the bot +require_all "#{$root_path}/config/initializers/*.rb" + +Zeta = Cinch::Bot.new do + configure do |c| + c.nick = Zconf.bot.nick + c.nicks = Zconf.bot.nicks.split(' ') + c.user = Zconf.bot.username + c.realname = Zconf.bot.realname + c.sasl.username = Zconf.sasl.username + c.sasl.password = Zconf.sasl.password + c.server = Zconf.server.hostname + c.password = Zconf.server.password + c.port = Zconf.server.port + c.ssl.use = Zconf.server.ssl + + c.modes = Zconf.server.modes.split(' ') + c.channels = Zconf.server.channels.split(' ') + c.plugins.prefix = /^!/ + end +end + +# Load Plugins +require_all "#{$root_path}/plugins/**/*.rb" + +## Start the bot IF NOT IRB/RIPL +unless defined?(IRB) || defined?(Ripl) + Zeta.start +end +