Added lazy loading to tag photos. Changed tag thumb location.
404
README.md
|
@ -6,16 +6,19 @@ Use [nvm](https://github.com/creationix/nvm) to install a recent version of Node
|
||||||
|
|
||||||
`npm install`
|
`npm install`
|
||||||
|
|
||||||
|
### Set up database
|
||||||
|
Install PostgreSQL, make sure password authentication is enabled (scram-sha-256) and create a database with a privileged user.
|
||||||
|
|
||||||
|
For optimal search engine performance, copy `traxxx.stop` to your PostgresQL text search directory, usually `/usr/share/postgresql/tsearch_data/ or `/usr/local/share/postgresql/tsearch_data/`.
|
||||||
|
|
||||||
`npm run migrate`
|
`npm run migrate`
|
||||||
|
|
||||||
`npm run seed`
|
`npm run seed`
|
||||||
|
|
||||||
`npm start`
|
`npm start`
|
||||||
|
|
||||||
For optimal search engine performance, copy `traxxx.stop` to your PostgresQL text search directory, usually `/usr/share/postgresql/tsearch_data/ or `/usr/local/share/postgresql/tsearch_data/`.
|
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
Do not modify `config/default.js`, but instead create a copy at `config/local.js` containing the properties you wish to change.
|
Do not modify `config/default.js`, but instead create a copy at `config/local.js` containing the properties you wish to change. If you have set `NODE_ENV`, copy `assets/js/config/default.js` to `assets/js/config/[environment].js`.
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
`npm start -- --option value`
|
`npm start -- --option value`
|
||||||
|
@ -35,336 +38,67 @@ Running `npm start` without any arguments will run the web server.
|
||||||
* `--debug`: Show full error stack trace.
|
* `--debug`: Show full error stack trace.
|
||||||
|
|
||||||
## Supported networks & sites
|
## Supported networks & sites
|
||||||
285 sites on 15 networks, continuously expanding!
|
768 sites on 62 networks, continuously expanding!
|
||||||
* **21Sextury**
|
|
||||||
* Anal Teen Angels
|
|
||||||
* Asshole Fever
|
|
||||||
* Butt Plays
|
|
||||||
* Club Sandy
|
|
||||||
* DP Fanatics
|
|
||||||
* Deepthroat Frenzy
|
|
||||||
* Footsie Babes
|
|
||||||
* Gapeland
|
|
||||||
* Lez Cuties
|
|
||||||
* Pix and Video
|
|
||||||
* **Bang Bros**
|
|
||||||
* Ass Parade
|
|
||||||
* AvaSpice
|
|
||||||
* Back Room Facials
|
|
||||||
* Backroom MILF
|
|
||||||
* Ball Honeys
|
|
||||||
* Bang Bus
|
|
||||||
* Bang Casting
|
|
||||||
* Bang POV
|
|
||||||
* Bang Tryouts
|
|
||||||
* BangBros 18
|
|
||||||
* BangBros Angels
|
|
||||||
* BangBros Remastered
|
|
||||||
* Bangbros Clips
|
|
||||||
* Big Mouthfuls
|
|
||||||
* Big Tit Cream Pie
|
|
||||||
* Big Tits, Round Asses
|
|
||||||
* BlowJob Fridays
|
|
||||||
* Blowjob Ninjas
|
|
||||||
* Boob Squad
|
|
||||||
* Brown Bunnies
|
|
||||||
* Can He Score?
|
|
||||||
* Casting
|
|
||||||
* Chongas
|
|
||||||
* Colombia Fuck Fest
|
|
||||||
* Dirty World Tour
|
|
||||||
* Dorm Invasion
|
|
||||||
* Facial Fest
|
|
||||||
* Fuck Team Five
|
|
||||||
* Glory Hole Loads
|
|
||||||
* Latina Rampage
|
|
||||||
* Living With Anna
|
|
||||||
* MILF Lessons
|
|
||||||
* Magical Feet
|
|
||||||
* Milf Soup
|
|
||||||
* MomIsHorny
|
|
||||||
* Monsters of Cock
|
|
||||||
* Mr CamelToe
|
|
||||||
* Mr. Anal
|
|
||||||
* My Dirty Maid
|
|
||||||
* My Life In Brazil
|
|
||||||
* Newbie Black
|
|
||||||
* Party of 3
|
|
||||||
* Pawg
|
|
||||||
* Penny Show
|
|
||||||
* Porn Star Spa
|
|
||||||
* Power Munch
|
|
||||||
* Public Bang
|
|
||||||
* Slutty White Girls
|
|
||||||
* Stepmom Videos
|
|
||||||
* Street Ranger
|
|
||||||
* Tugjobs
|
|
||||||
* Working Latinas
|
|
||||||
* **Blowpass**
|
|
||||||
* 1000 Facials
|
|
||||||
* Immoral Live
|
|
||||||
* Mommy Blows Best
|
|
||||||
* Only Teen Blowjobs
|
|
||||||
* Throated
|
|
||||||
* **Brazzers**
|
|
||||||
* Asses In Public
|
|
||||||
* Baby Got Boobs
|
|
||||||
* Big Butts Like It Big
|
|
||||||
* Big Tits In Sports
|
|
||||||
* Big Tits In Uniform
|
|
||||||
* Big Tits at School
|
|
||||||
* Big Tits at Work
|
|
||||||
* Big Wet Butts
|
|
||||||
* Brazzers Exxtra
|
|
||||||
* Brazzers Live
|
|
||||||
* Brazzers Vault
|
|
||||||
* Brazzers en Español
|
|
||||||
* Busty & Real
|
|
||||||
* Bustyz
|
|
||||||
* Butts & Blacks
|
|
||||||
* CFNM
|
|
||||||
* Day With A Pornstar
|
|
||||||
* Dirty Masseur
|
|
||||||
* Doctor Adventures
|
|
||||||
* Hot And Mean
|
|
||||||
* Hot Chicks Big Asses
|
|
||||||
* JugFuckers
|
|
||||||
* Milfs Like it Big
|
|
||||||
* Mommy Got Boobs
|
|
||||||
* Moms in Control
|
|
||||||
* Pornstars Like it Big
|
|
||||||
* Racks & Blacks
|
|
||||||
* Real Wife Stories
|
|
||||||
* SexPro Adventures
|
|
||||||
* Shes Gonna Squirt
|
|
||||||
* Teens Like It Big
|
|
||||||
* Teens Like It Black
|
|
||||||
* ZZ Series
|
|
||||||
* **DDF Network**
|
|
||||||
* 1By-Day
|
|
||||||
* DDF Busty
|
|
||||||
* DDF Network VR
|
|
||||||
* Euro Girls on Girls
|
|
||||||
* Euro Teen Erotica
|
|
||||||
* Hands on Hardcore
|
|
||||||
* Hot Legs and Feet
|
|
||||||
* House of Taboo
|
|
||||||
* Only Blowjob
|
|
||||||
* **Dogfart Network**
|
|
||||||
* Barb Cummings
|
|
||||||
* Black Meat White Feet
|
|
||||||
* Blacks On Blondes
|
|
||||||
* Blacks On Boys
|
|
||||||
* Blacks On Cougars
|
|
||||||
* Candy Monroe
|
|
||||||
* Cuckold Sessions
|
|
||||||
* Cumbang
|
|
||||||
* Dogfart Behind The Scenes
|
|
||||||
* Glory Hole
|
|
||||||
* Gloryholes And Handjobs
|
|
||||||
* Gloryholy Initiations
|
|
||||||
* Interracial Blowbang
|
|
||||||
* Interracial Pickups
|
|
||||||
* Katie Thomas
|
|
||||||
* Ruth Blackwell
|
|
||||||
* Spring Thomas
|
|
||||||
* The Minion
|
|
||||||
* Watching My Daughter Go Black
|
|
||||||
* Watching My Mom Go Black
|
|
||||||
* We Fuck Black Girls
|
|
||||||
* Wife Writing
|
|
||||||
* Zebra Girls
|
|
||||||
* **Evil Angel**
|
|
||||||
* **Jules Jordan**
|
|
||||||
* **Kink**
|
|
||||||
* 30 Minutes of Torment
|
|
||||||
* Bound Gangbangs
|
|
||||||
* Bound Gods
|
|
||||||
* Bound in Public
|
|
||||||
* Brutal Sessions
|
|
||||||
* Butt Machine Boys
|
|
||||||
* Device Bondage
|
|
||||||
* Devine Bitches
|
|
||||||
* Electrosluts
|
|
||||||
* Everything Butt
|
|
||||||
* Families Tied
|
|
||||||
* Foot Worship
|
|
||||||
* Fucked and Bound
|
|
||||||
* Fucking Machines
|
|
||||||
* Hardcore Gangbang
|
|
||||||
* Hogtied
|
|
||||||
* Kink University
|
|
||||||
* Men In Pain
|
|
||||||
* Men on Edge
|
|
||||||
* Naked Kombat
|
|
||||||
* Public Disgrace
|
|
||||||
* Sadistic Rope
|
|
||||||
* Sex and Submission
|
|
||||||
* The Training of O
|
|
||||||
* The Upper Floor
|
|
||||||
* TS Pussy Hunters
|
|
||||||
* TS Seduction
|
|
||||||
* Ultimate Surrender
|
|
||||||
* Water Bondage
|
|
||||||
* Whipped Ass
|
|
||||||
* Wired Pussy
|
|
||||||
* **LegalPorno**
|
|
||||||
* **Mike Adriano**
|
|
||||||
* All Anal
|
|
||||||
* True Anal
|
|
||||||
* Nympho
|
|
||||||
* Swallowed
|
|
||||||
* **MOFOS**
|
|
||||||
* Blogs
|
|
||||||
* Don't Break Me
|
|
||||||
* Ebony Sex Tapes
|
|
||||||
* Girls Gone Pink
|
|
||||||
* I Know That Girl
|
|
||||||
* Latina Sex Tapes
|
|
||||||
* Lets Try Anal
|
|
||||||
* MOFOS Lab
|
|
||||||
* Mofos B Sides
|
|
||||||
* Pervs On Patrol
|
|
||||||
* Public Pickups
|
|
||||||
* Real Slut Party
|
|
||||||
* Share My BF
|
|
||||||
* She's A Freak
|
|
||||||
* Stranded Teens
|
|
||||||
* **Naughty America**\*
|
|
||||||
* 2 Chicks Same Time
|
|
||||||
* American Daydreams
|
|
||||||
* Anal College
|
|
||||||
* Asian 1 On 1
|
|
||||||
* Ass Masterpiece
|
|
||||||
* Big Cock Bully
|
|
||||||
* Diary of a Milf
|
|
||||||
* Diary of a Nanny
|
|
||||||
* Dirty Wives Club
|
|
||||||
* Fast Times
|
|
||||||
* Housewife 1 on 1
|
|
||||||
* I Have a Wife
|
|
||||||
* LA Sluts
|
|
||||||
* Latin Adultery
|
|
||||||
* Latina Step Mom
|
|
||||||
* Lesbian Girl on Girl
|
|
||||||
* Live Gym Cam
|
|
||||||
* Live Naughty Milf
|
|
||||||
* Live Naughty Nurse
|
|
||||||
* Live Naughty Secretary
|
|
||||||
* Live Naughty Student
|
|
||||||
* Live Naughty Teacher
|
|
||||||
* Live Party Girl
|
|
||||||
* Milf Sugar Babes Classic
|
|
||||||
* My Dad's Hot Girlfriend
|
|
||||||
* My Daughter's Hot Friend
|
|
||||||
* My First Sex Teacher
|
|
||||||
* My Friend's Hot Girl
|
|
||||||
* My Friend's Hot Mom
|
|
||||||
* My Girl Loves Anal
|
|
||||||
* My Girlfriend's Busty Friend
|
|
||||||
* My Naughty Latin Maid
|
|
||||||
* My Naughty Massage
|
|
||||||
* My Sister's Hot Friend
|
|
||||||
* My Wife Is My Pornstar
|
|
||||||
* My Wife's Hot Friend
|
|
||||||
* Naughty America
|
|
||||||
* Naughty Athletics
|
|
||||||
* Naughty Bookworms
|
|
||||||
* Naughty Country Girls
|
|
||||||
* Naughty Flipside
|
|
||||||
* Naughty Office
|
|
||||||
* Naughty Rich Girls
|
|
||||||
Naughty Weddings
|
|
||||||
* Neighbor Affair
|
|
||||||
* Open Family
|
|
||||||
* Perfect Fucking Strangers Classic
|
|
||||||
* Seduced By A Cougar
|
|
||||||
* Sleazy Stepdad
|
|
||||||
* Slut Step Mom
|
|
||||||
* Slut Step Sister
|
|
||||||
* Socal Coeds
|
|
||||||
* Teens Love Cream
|
|
||||||
* The Passenger
|
|
||||||
* Tonight's Girlfriend
|
|
||||||
* Watch Your Mom
|
|
||||||
* Watch Your Wife
|
|
||||||
* Wives on Vacation
|
|
||||||
* **Perv City**
|
|
||||||
* Anal Overdose
|
|
||||||
* Banging Beauties
|
|
||||||
* Chocolate BJs
|
|
||||||
* Oral Overdose
|
|
||||||
* Up Her Asshole
|
|
||||||
* **Private**
|
|
||||||
* Anal Introductions
|
|
||||||
* Blacks on Sluts
|
|
||||||
* I Confess Files
|
|
||||||
* Mission: Ass Possible
|
|
||||||
* Private Fetish
|
|
||||||
* Private MILFs
|
|
||||||
* Private Stars
|
|
||||||
* Russian Fake Agent
|
|
||||||
* Russian Teen Ass
|
|
||||||
* Sex on the Beach
|
|
||||||
* Tight and Teen
|
|
||||||
* **Reality Kings**\*
|
|
||||||
* 40 Inch Plus\*
|
|
||||||
* 8th Street Latinas
|
|
||||||
* Bad Tow Truck\*
|
|
||||||
* Big Naturals
|
|
||||||
* Big Tits Boss\*
|
|
||||||
* Bikini Crashers\*
|
|
||||||
* CFNM Secret\*
|
|
||||||
* Captain Stabbin\*
|
|
||||||
* Cum Fiesta
|
|
||||||
* Cum Girls\*
|
|
||||||
* Dangerous Dongs\*
|
|
||||||
* Euro Sex Parties\*
|
|
||||||
* Extreme Asses\*
|
|
||||||
* Extreme Naturals\*
|
|
||||||
* First Time Auditions\*
|
|
||||||
* Flower Tucci\*
|
|
||||||
* Girls of Naked\*
|
|
||||||
* HD Love\*
|
|
||||||
* Happy Tugs
|
|
||||||
* Hot Bush\*
|
|
||||||
* In the VIP\*
|
|
||||||
* Mike in Brazil\*
|
|
||||||
* Mike's Apartment\*
|
|
||||||
* Milf Hunter
|
|
||||||
* Milf Next Door\*
|
|
||||||
* Moms Bang Teens
|
|
||||||
* Moms Lick Teens
|
|
||||||
* Money Talks
|
|
||||||
* Monster Curves\*
|
|
||||||
* No Faces\*
|
|
||||||
* Pure 18\*
|
|
||||||
* RK Prime\*
|
|
||||||
* Real Orgasms\*
|
|
||||||
* Round and Brown
|
|
||||||
* Saturday Night Latinas\*
|
|
||||||
* See My Wife\*
|
|
||||||
* Sneaky Sex
|
|
||||||
* Street BlowJobs\*
|
|
||||||
* Team Squirt\*
|
|
||||||
* Teens Love Huge Cocks
|
|
||||||
* Top Shelf Pussy\*
|
|
||||||
* Tranny Surprise
|
|
||||||
* VIP Crew\*
|
|
||||||
* We Live Together
|
|
||||||
* Wives in Pantyhose\*
|
|
||||||
* **Vixen**
|
|
||||||
* Blacked
|
|
||||||
* Blacked Raw
|
|
||||||
* Tushy
|
|
||||||
* Tushy Raw
|
|
||||||
* Vixen
|
|
||||||
* **XEmpire**
|
|
||||||
* DarkX
|
|
||||||
* EroticaX
|
|
||||||
* HardX
|
|
||||||
* LesbianX
|
|
||||||
|
|
||||||
## Notes
|
* 21Naturals
|
||||||
* **Naughty America**: Scene titles are not shown in NA's 'latest' overviews. They are derived from a hyperlink and will be stripped of any punctuation and capitalization. Individual scenes fetched by URL with `--scene` are not affected.
|
* 21Sextreme
|
||||||
* **Reality Kings**: Only RK sites without a `*` can be fetched individually by URL using `--scene`, as most RK sites do not show comprehensive details on their scene pages.
|
* 21Sextury
|
||||||
|
* Adult Time
|
||||||
|
* Amateur Allure
|
||||||
|
* Assylum
|
||||||
|
* Aziani
|
||||||
|
* Babes
|
||||||
|
* BAM Visions
|
||||||
|
* Bang!
|
||||||
|
* Bang Bros
|
||||||
|
* Blowpass
|
||||||
|
* Brazzers
|
||||||
|
* Burning Angel
|
||||||
|
* Cherry Pimps
|
||||||
|
* DDF Network
|
||||||
|
* Digital Playground
|
||||||
|
* Dogfart Network
|
||||||
|
* Evil Angel
|
||||||
|
* Fake Hub
|
||||||
|
* Fame Digital
|
||||||
|
* Fantasy Massage
|
||||||
|
* Full Porn Network
|
||||||
|
* Gamma Entertainment
|
||||||
|
* Girlsway
|
||||||
|
* Hush
|
||||||
|
* Hush Pass
|
||||||
|
* Hussie Pass
|
||||||
|
* Insex
|
||||||
|
* Interracial Pass
|
||||||
|
* JayRock Productions
|
||||||
|
* Jesse Loads Monster Facials
|
||||||
|
* Jules Jordan
|
||||||
|
* Kelly Madison Media
|
||||||
|
* Kink
|
||||||
|
* LegalPorno
|
||||||
|
* Men
|
||||||
|
* Metro HD
|
||||||
|
* Mike Adriano
|
||||||
|
* Mile High Media
|
||||||
|
* Mind Geek
|
||||||
|
* MOFOS
|
||||||
|
* Naughty America
|
||||||
|
* New Sensations
|
||||||
|
* Nubiles
|
||||||
|
* Perfect Gonzo
|
||||||
|
* Perv City
|
||||||
|
* Pimp.XXX
|
||||||
|
* Porn Pros
|
||||||
|
* Private
|
||||||
|
* Pure Taboo
|
||||||
|
* Reality Kings
|
||||||
|
* SCORE
|
||||||
|
* Sexy Hub
|
||||||
|
* Team Skeet
|
||||||
|
* Twistys
|
||||||
|
* Vivid
|
||||||
|
* Vixen
|
||||||
|
* VogoV
|
||||||
|
* Whale Member
|
||||||
|
* Wicked
|
||||||
|
* XEmpire
|
||||||
|
|
|
@ -6,11 +6,16 @@
|
||||||
>
|
>
|
||||||
<h3 class="heading">{{ category }}</h3>
|
<h3 class="heading">{{ category }}</h3>
|
||||||
|
|
||||||
<div class="tiles">
|
<div
|
||||||
|
:key="sfw"
|
||||||
|
v-lazy-container
|
||||||
|
class="tiles"
|
||||||
|
>
|
||||||
<Tag
|
<Tag
|
||||||
v-for="tag in tags"
|
v-for="tag in tags"
|
||||||
:key="`tag-${tag.id}`"
|
:key="`tag-${tag.id}`"
|
||||||
:tag="tag"
|
:tag="tag"
|
||||||
|
:lazy="true"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -20,6 +25,10 @@
|
||||||
<script>
|
<script>
|
||||||
import Tag from '../tile/tag.vue';
|
import Tag from '../tile/tag.vue';
|
||||||
|
|
||||||
|
function sfw() {
|
||||||
|
return this.$store.state.ui.sfw;
|
||||||
|
}
|
||||||
|
|
||||||
async function mounted() {
|
async function mounted() {
|
||||||
const tagSlugsByCategory = {
|
const tagSlugsByCategory = {
|
||||||
popular: [
|
popular: [
|
||||||
|
@ -29,21 +38,14 @@ async function mounted() {
|
||||||
'mfm',
|
'mfm',
|
||||||
'interracial',
|
'interracial',
|
||||||
'blowjob',
|
'blowjob',
|
||||||
'facial',
|
|
||||||
'creampie',
|
|
||||||
'teen',
|
|
||||||
'milf',
|
|
||||||
'orgy',
|
'orgy',
|
||||||
'gangbang',
|
'gangbang',
|
||||||
'double-penetration',
|
'double-penetration',
|
||||||
'airtight',
|
'airtight',
|
||||||
],
|
'facial',
|
||||||
extreme: [
|
'creampie',
|
||||||
'double-anal',
|
'teen',
|
||||||
'double-vaginal',
|
'milf',
|
||||||
'da-tp',
|
|
||||||
'dv-tp',
|
|
||||||
'triple-anal',
|
|
||||||
],
|
],
|
||||||
oral: [
|
oral: [
|
||||||
'deepthroat',
|
'deepthroat',
|
||||||
|
@ -54,13 +56,6 @@ async function mounted() {
|
||||||
'ass-eating',
|
'ass-eating',
|
||||||
'ass-to-mouth',
|
'ass-to-mouth',
|
||||||
],
|
],
|
||||||
cumshot: [
|
|
||||||
'facial',
|
|
||||||
'bukkake',
|
|
||||||
'creampie',
|
|
||||||
'anal-creampie',
|
|
||||||
'cum-in-mouth',
|
|
||||||
],
|
|
||||||
appearance: [
|
appearance: [
|
||||||
'asian',
|
'asian',
|
||||||
'ebony',
|
'ebony',
|
||||||
|
@ -70,6 +65,20 @@ async function mounted() {
|
||||||
'brunette',
|
'brunette',
|
||||||
'redhead',
|
'redhead',
|
||||||
],
|
],
|
||||||
|
cumshot: [
|
||||||
|
'facial',
|
||||||
|
'bukkake',
|
||||||
|
'creampie',
|
||||||
|
'anal-creampie',
|
||||||
|
'cum-in-mouth',
|
||||||
|
],
|
||||||
|
extreme: [
|
||||||
|
'double-anal',
|
||||||
|
'double-vaginal',
|
||||||
|
'da-tp',
|
||||||
|
'dv-tp',
|
||||||
|
'triple-anal',
|
||||||
|
],
|
||||||
roleplay: [
|
roleplay: [
|
||||||
'family',
|
'family',
|
||||||
'schoolgirl',
|
'schoolgirl',
|
||||||
|
@ -105,6 +114,9 @@ export default {
|
||||||
pageTitle: null,
|
pageTitle: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
sfw,
|
||||||
|
},
|
||||||
mounted,
|
mounted,
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -118,7 +130,7 @@ export default {
|
||||||
|
|
||||||
.tiles {
|
.tiles {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(20rem, .25fr));
|
grid-template-columns: repeat(auto-fit, minmax(23rem, .33fr));
|
||||||
grid-gap: 1rem;
|
grid-gap: 1rem;
|
||||||
margin: 0 0 1.5rem 0;
|
margin: 0 0 1.5rem 0;
|
||||||
}
|
}
|
||||||
|
@ -130,7 +142,7 @@ export default {
|
||||||
|
|
||||||
@media(max-width: $breakpoint3) {
|
@media(max-width: $breakpoint3) {
|
||||||
.tiles {
|
.tiles {
|
||||||
grid-template-columns: repeat(auto-fit, minmax(20rem, .5fr));
|
grid-template-columns: repeat(auto-fit, minmax(21rem, .5fr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,41 @@
|
||||||
>
|
>
|
||||||
<span class="title">{{ tag.name }}</span>
|
<span class="title">{{ tag.name }}</span>
|
||||||
|
|
||||||
<img
|
<template v-if="tag.poster">
|
||||||
v-if="tag.poster"
|
<img
|
||||||
:src="sfw ? `/img/${tag.poster.sfw.thumbnail}` : `/img/${tag.poster.thumbnail}`"
|
v-if="!lazy && !sfw"
|
||||||
:title="sfw ? tag.poster.sfw.comment : tag.poster.comment"
|
:src="`/img/${tag.poster.thumbnail}`"
|
||||||
:alt="tag.name"
|
:title="tag.poster.comment"
|
||||||
class="poster"
|
:alt="tag.name"
|
||||||
>
|
class="poster"
|
||||||
|
>
|
||||||
|
|
||||||
|
<img
|
||||||
|
v-if="!lazy && sfw"
|
||||||
|
:src="`/img/${tag.poster.sfw.thumbnail}`"
|
||||||
|
:title="tag.poster.sfw.comment"
|
||||||
|
:alt="tag.name"
|
||||||
|
class="poster"
|
||||||
|
>
|
||||||
|
|
||||||
|
<img
|
||||||
|
v-if="lazy && !sfw"
|
||||||
|
:data-src="`/img/${tag.poster.thumbnail}`"
|
||||||
|
:data-loading="`/img/${tag.poster.lazy}`"
|
||||||
|
:title="tag.poster.comment"
|
||||||
|
:alt="tag.name"
|
||||||
|
class="poster"
|
||||||
|
>
|
||||||
|
|
||||||
|
<img
|
||||||
|
v-if="lazy && sfw"
|
||||||
|
:data-src="`/img/${tag.poster.sfw.thumbnail}`"
|
||||||
|
:data-loading="`/img/${tag.poster.sfw.lazy}`"
|
||||||
|
:title="tag.poster.sfw.comment"
|
||||||
|
:alt="tag.name"
|
||||||
|
class="poster"
|
||||||
|
>
|
||||||
|
</template>
|
||||||
</router-link>
|
</router-link>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -27,6 +55,10 @@ export default {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
|
lazy: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
sfw,
|
sfw,
|
||||||
|
@ -52,7 +84,7 @@ export default {
|
||||||
|
|
||||||
.poster {
|
.poster {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 16rem;
|
height: 17rem;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
object-position: 50% 100%;
|
object-position: 50% 100%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import dayjs from 'dayjs';
|
|
||||||
import VTooltip from 'v-tooltip';
|
import VTooltip from 'v-tooltip';
|
||||||
|
import VueLazyLoad from 'vue-lazyload';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
import router from './router';
|
import router from './router';
|
||||||
import initStore from './store';
|
import initStore from './store';
|
||||||
|
@ -43,6 +44,9 @@ function init() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Vue.use(VTooltip);
|
Vue.use(VTooltip);
|
||||||
|
Vue.use(VueLazyLoad, {
|
||||||
|
throttleWait: 0,
|
||||||
|
});
|
||||||
|
|
||||||
new Vue({ // eslint-disable-line no-new
|
new Vue({ // eslint-disable-line no-new
|
||||||
el: '#container',
|
el: '#container',
|
||||||
|
|
|
@ -43,11 +43,13 @@ function initTagsActions(store, _router) {
|
||||||
media {
|
media {
|
||||||
id
|
id
|
||||||
thumbnail
|
thumbnail
|
||||||
|
lazy
|
||||||
path
|
path
|
||||||
comment
|
comment
|
||||||
sfw: sfwMedia {
|
sfw: sfwMedia {
|
||||||
id
|
id
|
||||||
thumbnail
|
thumbnail
|
||||||
|
lazy
|
||||||
path
|
path
|
||||||
comment
|
comment
|
||||||
}
|
}
|
||||||
|
@ -123,9 +125,11 @@ function initTagsActions(store, _router) {
|
||||||
media {
|
media {
|
||||||
thumbnail
|
thumbnail
|
||||||
comment
|
comment
|
||||||
|
lazy
|
||||||
sfw: sfwMedia {
|
sfw: sfwMedia {
|
||||||
thumbnail
|
thumbnail
|
||||||
comment
|
comment
|
||||||
|
lazy
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ exports.up = knex => Promise.resolve()
|
||||||
|
|
||||||
table.string('path');
|
table.string('path');
|
||||||
table.string('thumbnail');
|
table.string('thumbnail');
|
||||||
|
table.string('lazy');
|
||||||
table.integer('index');
|
table.integer('index');
|
||||||
table.string('mime');
|
table.string('mime');
|
||||||
|
|
||||||
|
|
|
@ -1066,6 +1066,11 @@
|
||||||
"tar": "^4.4.6"
|
"tar": "^4.4.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@tokenizer/token": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz",
|
||||||
|
"integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w=="
|
||||||
|
},
|
||||||
"@types/accepts": {
|
"@types/accepts": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
|
||||||
|
@ -1107,6 +1112,11 @@
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/debug": {
|
||||||
|
"version": "4.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
|
||||||
|
"integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ=="
|
||||||
|
},
|
||||||
"@types/express": {
|
"@types/express": {
|
||||||
"version": "4.17.2",
|
"version": "4.17.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz",
|
||||||
|
@ -4449,6 +4459,17 @@
|
||||||
"moment": "^2.11.2"
|
"moment": "^2.11.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"file-type": {
|
||||||
|
"version": "14.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-type/-/file-type-14.1.4.tgz",
|
||||||
|
"integrity": "sha512-1n6FczX8n73Y/cLjTiMboeTGHfm/i2AWk2oQE7m9a/G5YTCZHCEHEGr32thhLm3iQNUYzTKVQUcYcNHtOLwqgQ==",
|
||||||
|
"requires": {
|
||||||
|
"readable-web-to-node-stream": "^2.0.0",
|
||||||
|
"strtok3": "^6.0.0",
|
||||||
|
"token-types": "^2.0.0",
|
||||||
|
"typedarray-to-buffer": "^3.1.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"file-uri-to-path": {
|
"file-uri-to-path": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||||
|
@ -5821,8 +5842,7 @@
|
||||||
"ieee754": {
|
"ieee754": {
|
||||||
"version": "1.1.13",
|
"version": "1.1.13",
|
||||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
|
||||||
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
|
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"iferr": {
|
"iferr": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
|
@ -7358,14 +7378,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
|
||||||
"integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA=="
|
"integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA=="
|
||||||
},
|
},
|
||||||
"native-node-utils": {
|
|
||||||
"version": "0.2.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/native-node-utils/-/native-node-utils-0.2.7.tgz",
|
|
||||||
"integrity": "sha512-61v0G3uVxWlXHppSZGwZi+ZEIgGUKI8QvEkEJLb1GVePI7P8SBe+G747z+QMXSt4TxfgbVZP0DyobbRKYVIjdw==",
|
|
||||||
"requires": {
|
|
||||||
"nan": "^2.13.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"natural-compare": {
|
"natural-compare": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||||
|
@ -7892,26 +7904,6 @@
|
||||||
"mimic-fn": "^1.0.0"
|
"mimic-fn": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"opencv-build": {
|
|
||||||
"version": "0.1.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/opencv-build/-/opencv-build-0.1.9.tgz",
|
|
||||||
"integrity": "sha512-tgT/bnJAcYROen9yaPynfK98IMl62mPSgMLmTx41911m5bczlq21xtE5r+UWLB/xEo/0hKk6tl5zHyxV/JS5Rg==",
|
|
||||||
"requires": {
|
|
||||||
"npmlog": "^4.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"opencv4nodejs": {
|
|
||||||
"version": "5.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/opencv4nodejs/-/opencv4nodejs-5.5.0.tgz",
|
|
||||||
"integrity": "sha512-coQ/XuQnWh5ew7LhUYbAMXTHo3wEya/4nlDi99l+w/kk1uHw8nWy2OptVI74IxIlYQKKqNy4pv2DdMY0vheA/g==",
|
|
||||||
"requires": {
|
|
||||||
"@types/node": ">6",
|
|
||||||
"nan": "^2.14.0",
|
|
||||||
"native-node-utils": "^0.2.7",
|
|
||||||
"npmlog": "^4.1.2",
|
|
||||||
"opencv-build": "^0.1.9"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"opn": {
|
"opn": {
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
|
||||||
|
@ -8180,6 +8172,11 @@
|
||||||
"sha.js": "^2.4.8"
|
"sha.js": "^2.4.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"peek-readable": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA=="
|
||||||
|
},
|
||||||
"performance-now": {
|
"performance-now": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||||
|
@ -8957,6 +8954,11 @@
|
||||||
"util-deprecate": "~1.0.1"
|
"util-deprecate": "~1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"readable-web-to-node-stream": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA=="
|
||||||
|
},
|
||||||
"readdirp": {
|
"readdirp": {
|
||||||
"version": "2.2.1",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
|
||||||
|
@ -10502,6 +10504,27 @@
|
||||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
|
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
|
||||||
},
|
},
|
||||||
|
"strtok3": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-ZXlmE22LZnIBvEU3n/kZGdh770fYFie65u5+2hLK9s74DoFtpkQIdBZVeYEzlolpGa+52G5IkzjUWn+iXynOEQ==",
|
||||||
|
"requires": {
|
||||||
|
"@tokenizer/token": "^0.1.1",
|
||||||
|
"@types/debug": "^4.1.5",
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"peek-readable": "^3.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "^2.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"style-loader": {
|
"style-loader": {
|
||||||
"version": "0.23.1",
|
"version": "0.23.1",
|
||||||
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
|
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
|
||||||
|
@ -10859,6 +10882,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
||||||
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
||||||
},
|
},
|
||||||
|
"token-types": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==",
|
||||||
|
"requires": {
|
||||||
|
"@tokenizer/token": "^0.1.0",
|
||||||
|
"ieee754": "^1.1.13"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
|
||||||
|
@ -11095,6 +11127,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
||||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
||||||
},
|
},
|
||||||
|
"typedarray-to-buffer": {
|
||||||
|
"version": "3.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
|
||||||
|
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
|
||||||
|
"requires": {
|
||||||
|
"is-typedarray": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"umzug": {
|
"umzug": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/umzug/-/umzug-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/umzug/-/umzug-2.2.0.tgz",
|
||||||
|
@ -11411,6 +11451,11 @@
|
||||||
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"vue-lazyload": {
|
||||||
|
"version": "1.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.3.3.tgz",
|
||||||
|
"integrity": "sha512-uHnq0FTEeNmqnbBC2aRKlmtd9LofMZ6Q3mWvgfLa+i9vhxU8fDK+nGs9c1iVT85axSua/AUnMttIq3xPaU9G3A=="
|
||||||
|
},
|
||||||
"vue-loader": {
|
"vue-loader": {
|
||||||
"version": "15.9.0",
|
"version": "15.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.0.tgz",
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
"express-promise-router": "^3.0.3",
|
"express-promise-router": "^3.0.3",
|
||||||
"express-react-views": "^0.11.0",
|
"express-react-views": "^0.11.0",
|
||||||
"face-api.js": "^0.21.0",
|
"face-api.js": "^0.21.0",
|
||||||
|
"file-type": "^14.1.4",
|
||||||
"fs-extra": "^7.0.1",
|
"fs-extra": "^7.0.1",
|
||||||
"graphile-utils": "^4.5.6",
|
"graphile-utils": "^4.5.6",
|
||||||
"iconv-lite": "^0.5.1",
|
"iconv-lite": "^0.5.1",
|
||||||
|
@ -96,7 +97,6 @@
|
||||||
"mime": "^2.4.4",
|
"mime": "^2.4.4",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"nanoid": "^2.1.11",
|
"nanoid": "^2.1.11",
|
||||||
"opencv4nodejs": "^5.5.0",
|
|
||||||
"opn": "^5.5.0",
|
"opn": "^5.5.0",
|
||||||
"pg": "^7.18.1",
|
"pg": "^7.18.1",
|
||||||
"postgraphile": "^4.5.5",
|
"postgraphile": "^4.5.5",
|
||||||
|
@ -115,6 +115,7 @@
|
||||||
"url-pattern": "^1.0.3",
|
"url-pattern": "^1.0.3",
|
||||||
"v-tooltip": "^2.0.3",
|
"v-tooltip": "^2.0.3",
|
||||||
"vue": "^2.6.11",
|
"vue": "^2.6.11",
|
||||||
|
"vue-lazyload": "^1.3.3",
|
||||||
"vue-router": "^3.1.6",
|
"vue-router": "^3.1.6",
|
||||||
"vuex": "^3.1.2",
|
"vuex": "^3.1.2",
|
||||||
"winston": "^3.2.1",
|
"winston": "^3.2.1",
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 1256.3 150.7" style="enable-background:new 0 0 1256.3 150.7;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#ED1C24;}
|
||||||
|
.st1{fill:#333333;}
|
||||||
|
.st2{fill:#333333;stroke:#000000;stroke-miterlimit:10;}
|
||||||
|
.st3{fill:#FFFFFF;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M118.6,23.1l-1.8,20.4c-5-1.9-10.7-2.8-17.3-2.8H66l-6.1,24.9h30.5c5.2,0,11-0.9,17.3-2.8L101.9,86
|
||||||
|
c-5.4-1.9-10.7-2.8-15.9-2.8H55.3l-7.1,28.6h33.5c6.4,0,12.7-0.9,18.8-2.8L92,129.4H0c3.2-4.1,5.8-10,7.6-17.6l17.8-71
|
||||||
|
c1.9-7.5,2.3-13.4,1.2-17.6L118.6,23.1L118.6,23.1z"/>
|
||||||
|
<path class="st0" d="M280,23.1c-5.1,4.5-9.9,10.4-14.4,17.6l-56.3,88.6H164L153.4,35c-0.7-5.4-2.1-9.4-4.3-12h50.5
|
||||||
|
c-0.6,1.2-1.3,3.2-2.3,5.8c-0.8,3.2-0.9,7.1-0.3,11.8l7.5,66.1l42-66.1c4.2-6.6,6.3-12.5,6.3-17.6H280V23.1z"/>
|
||||||
|
<path class="st0" d="M360.2,23.1c-3.3,4.3-5.9,10.2-7.8,17.6l-17.8,71c-1.8,7.3-2.1,13.2-1,17.6h-47.1c3.2-4.1,5.8-10,7.6-17.6
|
||||||
|
l17.8-71c1.9-7.5,2.3-13.4,1.2-17.6H360.2z"/>
|
||||||
|
<path class="st0" d="M483.7,109l-8.5,20.4h-92c3.2-4.1,5.8-10,7.6-17.6l17.8-71c1.9-7.5,2.3-13.4,1.2-17.6h47.1
|
||||||
|
c-3.3,4.3-5.9,10.2-7.8,17.6l-17.8,71h33.5C471.4,111.8,477.6,110.8,483.7,109z"/>
|
||||||
|
<path class="st1" d="M650.2,129.5h-53.3c2.3-2.9,3.7-5.3,4.2-7.3c0.7-2.5,0.6-6-0.2-10.3l-1.8-11h-46.6l-11.3,15.3
|
||||||
|
c-1.2,1.6-2.1,3.5-2.7,6c-0.6,2.2-0.4,4.6,0.5,7.3h-30.2c5.5-5,10.8-10.8,15.8-17.6l60.3-82.7l-3.2-6h48l14.6,89.1
|
||||||
|
C645.4,119.7,647.4,125.4,650.2,129.5z M596.4,83.3l-6.1-35.9l-25.2,35.9H596.4z"/>
|
||||||
|
<path class="st1" d="M834.7,23.2c-3.3,4.3-5.9,10.2-7.8,17.6l-22.1,88.6h-52.5l-21.9-88h-0.3l-17.6,70.4c-1.8,7.3-2.1,13.2-1,17.6
|
||||||
|
h-24.2c3.2-4.1,5.8-10,7.6-17.6l17.8-71c1.9-7.5,2.3-13.4,1.2-17.6h56.3l21.4,86.7h0.5l17.3-69.1c1.9-7.5,2.3-13.4,1.2-17.6
|
||||||
|
C810.6,23.2,834.7,23.2,834.7,23.2z"/>
|
||||||
|
<path class="st1" d="M987.9,65.7c-4.4,4.8-7.4,9.9-8.8,15.4l-7.8,30.7c-1.1,4.2-1.7,7.6-1.7,10.1s0.6,5,1.7,7.5h-35.7l1-9.6h-0.3
|
||||||
|
c-1.9,3.5-3.8,5.9-5.8,7.1c-2.5,1.7-6.3,2.5-11.3,2.5h-36.5c-13.6,0-20.4-6.1-20.4-18.3c0-3.3,0.5-7,1.5-11.1l11.8-47.5
|
||||||
|
c4.9-19.6,16.1-29.4,33.7-29.4h78.4l-2,20.4c-4.1-1.9-9.1-2.8-15.1-2.8h-43.5c-5.3,0-8.5,2.2-9.6,6.6l-14.4,57.8
|
||||||
|
c-0.2,0.9-0.3,1.7-0.3,2.3c0,2.9,2.2,4.3,6.6,4.3h13.8c5.2,0,8.4-2.2,9.5-6.6l5.5-21.9h-15.1c-1.4,0-3.9,0.7-7.3,2l5-19.6h67.1V65.7
|
||||||
|
z"/>
|
||||||
|
<path class="st2" d="M1133.5,23.2l-1.8,20.4c-5-1.9-10.7-2.8-17.3-2.8h-33.5l-6.2,24.9h30.5c5.2,0,11-0.9,17.3-2.8l-5.8,23.2
|
||||||
|
c-5.4-1.9-10.7-2.8-15.9-2.8h-30.5l-7.1,28.6h33.5c6.4,0,12.7-0.9,18.8-2.8l-8.5,20.4h-92c3.2-4.1,5.8-10,7.6-17.6l17.8-71
|
||||||
|
c1.9-7.5,2.3-13.4,1.2-17.6L1133.5,23.2L1133.5,23.2z"/>
|
||||||
|
<path class="st1" d="M1256.3,109l-8.5,20.4h-92c3.2-4.1,5.8-10,7.6-17.6l17.8-71c1.9-7.5,2.3-13.4,1.2-17.6h47.1
|
||||||
|
c-3.3,4.3-5.9,10.2-7.8,17.6l-17.8,71h33.5C1243.9,111.9,1250.2,110.9,1256.3,109z"/>
|
||||||
|
<path class="st3" d="M706.1,119.5l-57.6-3.6c2.7-2.9,4.4-5.5,5-7.6c0.9-2.7,1.1-6.4,0.5-11.1l-1.2-12L602.4,82l-13.2,15.7
|
||||||
|
c-1.4,1.6-2.5,3.7-3.3,6.3c-0.8,2.4-0.7,5,0,7.9l-32.6-2.1c6.3-5,12.4-11,18.2-17.9l70.7-85.2l-3-6.7L691,3.3l9.7,97.3
|
||||||
|
C701.7,108.6,703.4,114.9,706.1,119.5z M651.2,66L647,26.8l-29.7,37L651.2,66z"/>
|
||||||
|
<path class="st3" d="M912.7,17.3c-3.9,4.4-7.1,10.6-9.6,18.5l-29.9,94.3l-56.7-3.6L798.8,30h-0.4l-23.7,74.7
|
||||||
|
c-2.4,7.8-3.2,14.1-2.3,18.9l-26.2-1.7c3.7-4.2,6.9-10.4,9.4-18.5l24-75.5c2.5-8,3.4-14.3,2.5-18.9l60.8,3.8l17.2,95.1h0.5L884,34.5
|
||||||
|
c2.5-8,3.4-14.3,2.5-18.9L912.7,17.3z"/>
|
||||||
|
<path class="st3" d="M1069.7,142.4l-57.6-3.6c2.7-2.9,4.4-5.5,5-7.6c0.9-2.7,1.1-6.4,0.5-11.1l-1.2-12l-50.4-3.2l-13.2,15.8
|
||||||
|
c-1.4,1.6-2.5,3.7-3.3,6.3c-0.8,2.4-0.7,5,0,7.9l-32.6-2.1c6.3-5,12.4-11,18.2-17.9l70.7-85.2l-3-6.7l51.8,3.3l9.7,97.3
|
||||||
|
C1065.2,131.5,1067,137.8,1069.7,142.4z M1014.7,88.9l-4.2-39.2l-29.7,37L1014.7,88.9z"/>
|
||||||
|
<path class="st3" d="M1210,129.2l-10.5,21.5l-99.3-6.3c3.7-4.2,6.9-10.4,9.4-18.5l24-75.5c2.5-8,3.4-14.3,2.5-18.9l50.9,3.2
|
||||||
|
c-3.9,4.4-7.1,10.6-9.6,18.5l-24,75.5l36.2,2.3C1196.4,131.4,1203.3,130.8,1210,129.2z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.9 KiB |