thcolin / oleoo Goto Github PK
View Code? Open in Web Editor NEW๐๐ธโ ๏ธ Parse scene / p2p release name, return object with title, tags and flags
๐๐ธโ ๏ธ Parse scene / p2p release name, return object with title, tags and flags
language: VO
subtitle: FR
{ original:
'Manifest.S01E06.FASTSUB.VOSTFR.HDTV.XviD-EXTREME [ www.Torrent9.PH ].avi',
language: 'VOSTFR',
source: 'HDTV',
encoding: 'XviD',
resolution: null,
dub: null,
year: null,
flags: [ 'FASTSUB' ],
season: 1,
episode: 6,
episodes: [ 6 ],
type: 'tvshow',
group: 'EXTREME',
title: 'Manifest',
generated: 'Manifest.S01E06.VOSTFR.HDTV.XviD-EXTREME',
score: 5 }
E01test
test1578
Test HDTV
Movie [corp]
LOL.S04E13.HDTV.x264-BAWLS
The Wire - 101 - The Target [Zelou]
The.Invisible.2007.DC.DVDRip.XviD-NQR
A.crazy.movie.2007.720p.XviD-NQR
The Closer - 02x14-2x15 - Serving the King
Zorro.01x01.Arriva.Zorro.XViD.DVDRip.ITA.AC3-iTV
Regular.Show.S05E26.Return.of.Mordecai.and.the.Rigbys.720p.HDTV.x264-W4F
Souvent les manga n'ont pas de E devant le numero de l'episode et sont sous le format 000
ex: 001, 099, 130
{ original: 'Dragon Ball Super - 064 French 720p WEB x264 MP3-Kesni.mkv',
language: 'FRENCH',
source: 'WEB-DL',
encoding: 'x264',
resolution: '720p',
dub: null,
year: null,
flags: null,
season: null,
episode: null,
episodes: [],
type: 'movie',
group: 'Kesni.mkv',
title: 'Dragon Ball Super - 064',
generated: 'Dragon.Ball.Super.-.064.FRENCH.720p.WEB-DL.x264-Kesni.mkv',
score: 5 }
Input: Parasite.2019.MULTi.VFI.WEBrip.2160p.HDR.x265.True.HD-Tokuchi
Output: Parasite.2019.MULTI.2160p.HDRip.x265-Tokuchi
Expected: Parasite.2019.MULTI.2160p.WEBRip.x265-Tokuchi
with HDR
value in flags
My.Best.Friends.Breakfast.2022.CHINESE.1080p.BluRay.x265-VXT
Recognized as VO
Subnautica.Below.Zero-CODEX got error
(node:5709) UnhandledPromiseRejectionWarning: Error: "Subnautica.Below.Zero-CODEX" does't follow scene release naming rules
at Object.parse (/home/kkm/node_modules/oleoo/src/index.js:231:11)
at getImdb (/home/kkm/test/service/test.js:220:19)
at run (/home/kkm/test/service/test.js:175:24)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:5709) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:5709) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Hi,
the flash s01e01
is detected as movie.
the.flash.s01e01.
is detected as tv show.
That is annoying.
Could the detection be tweaked to not have this reliance?
Hi!
I just wanted to report an issue regarding a TV show title pattern.
When using the pattern:
Run.the.World.S02E07.FRENCH.1080p.WEB.H264-FW-WEBSITE
It returns "Run the" as the title, which seems to be incorrect.
However, when the "FW" part is removed, as in:
Run.the.World.S02E07.FRENCH.1080p.WEB.H264-WEBSITE
It correctly returns "Run the World."
{ original:
'The.Great.Wall.2016.Multi.Truefrench.Multi.1080p.Blu-ray.Remux.AVC.TrueHD.7.1-STZ.mkv',
language: 'MULTI',
source: 'BLURAY',
encoding: null,
resolution: '1080p',
dub: null,
year: '2016',
flags: [ 'REMUX', 'TRUEHD' ],
season: null,
episode: null,
episodes: [],
type: 'movie',
group: 'STZ.mkv',
title: 'The Great Wall',
generated:
'The.Great.Wall.2016.MULTI.1080p.BLURAY.REMUX.TRUEHD-STZ.mkv',
score: 6 }
Hey friend, I notice your idea behind:
Line 212 in 90aaf51
Roman letters in movie series numbering, I assume.
In danish "I" means "in" so its very common in names.
Examples:
Nattevagten.Daemoner.gaar.i.arv.2023
would be
Nattevagten Daemoner Gaar 1 Arv
Which means the title is mangled, since it means "in" not numbering of movie series.
Is it safe to assume roman letters for movie series numbering would be at the end of a title? (Movie.Part.II, Phantom.Menace.Episode.I, etc)
.. Cuz that would eliminate this issue.
let yearPos = 0
words.reduceRight((_, w, i) => {
if (/19|20\d{2}/.test(w)) {
yearPos = i
}
}, null)
release.title = waste
.replace(/[\.\-]+/, '.')
.split('.')
.filter((word, position) => word === words[position])
.map((word, i) => {
if (word.split('').every(char => ['i', 'I'].includes(char)) && i === (yearPos - 1)) {
return word.length
} else {
return word
}
})
Would this work for you? Checks if its exactly before year-tag and then applies.
As in example below:
2.Fast.2.Furious.2003.MULTi.2160p.UHD.BluRay.x265-OohLaLa
Thanks!
Je pense a un algo d'auto remove de [xxx] si premier char
{ original:
'[ www.Torrent9.PH ] The.Darkest.Minds.2018.MULTi.1080p.WEB-DL.DD5.1.H264-ACOOL.mkv',
language: 'MULTI',
source: 'WEB-DL',
encoding: 'h264',
resolution: '1080p',
dub: null,
year: '2018',
flags: [ 'DD5.1' ],
season: null,
episode: null,
episodes: [],
type: 'movie',
group: 'ACOOL.mkv',
title: ' Www Torrent9 Ph The Darkest Minds',
generated:
'Www.Torrent9.Ph.The.Darkest.Minds.2018.MULTI.1080p.WEB-DL.h264.DD5.1-ACOOL.mkv',
score: 7 }
Merci pour ta lib :)
J'ai remarquรฉ que les episodes de manga de semblent pas etre lu correctement:
{ original:
'Dragon.Ball.Super.E89.FRENCH.1080P.HDTV.x264-R342 [ www.Torrent9.PH ].mkv',
language: 'FRENCH',
source: 'HDTV',
encoding: 'x264',
resolution: '1080p',
dub: null,
year: null,
flags: null,
season: null,
episode: null,
episodes: [],
type: 'movie',
group: 'R342',
title: 'Dragon Ball Super E89',
generated: 'Dragon.Ball.Super.E89.FRENCH.1080p.HDTV.x264-R342',
score: 5 }
Episodes without scene release tags fail. Example below:
const oleoo = require('oleoo')
let release
release = oleoo.parse('The.Mandalorian.S01E06');
outputs
...
generated: "The.Mandalorian.S01e06-NOTEAM"
group: null
language: "VO"
original: "The.Mandalorian.S01E06"
resolution: null
score: 0
season: null
source: null
title: "The Mandalorian S01e06"
type: "movie"
...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.