mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-20 05:13:16 -07:00
Move common libs to libs/common
This commit is contained in:
parent
8dbb1a2451
commit
1f4bd41bcc
1612 changed files with 962 additions and 10 deletions
52
libs/common/guessit/rules/markers/groups.py
Normal file
52
libs/common/guessit/rules/markers/groups.py
Normal file
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Groups markers (...), [...] and {...}
|
||||
"""
|
||||
from rebulk import Rebulk
|
||||
|
||||
|
||||
def groups(config):
|
||||
"""
|
||||
Builder for rebulk object.
|
||||
|
||||
:param config: rule configuration
|
||||
:type config: dict
|
||||
:return: Created Rebulk object
|
||||
:rtype: Rebulk
|
||||
"""
|
||||
rebulk = Rebulk()
|
||||
rebulk.defaults(name="group", marker=True)
|
||||
|
||||
starting = config['starting']
|
||||
ending = config['ending']
|
||||
|
||||
def mark_groups(input_string):
|
||||
"""
|
||||
Functional pattern to mark groups (...), [...] and {...}.
|
||||
|
||||
:param input_string:
|
||||
:return:
|
||||
"""
|
||||
openings = ([], [], [])
|
||||
i = 0
|
||||
|
||||
ret = []
|
||||
for char in input_string:
|
||||
start_type = starting.find(char)
|
||||
if start_type > -1:
|
||||
openings[start_type].append(i)
|
||||
|
||||
i += 1
|
||||
|
||||
end_type = ending.find(char)
|
||||
if end_type > -1:
|
||||
try:
|
||||
start_index = openings[end_type].pop()
|
||||
ret.append((start_index, i))
|
||||
except IndexError:
|
||||
pass
|
||||
return ret
|
||||
|
||||
rebulk.functional(mark_groups)
|
||||
return rebulk
|
Loading…
Add table
Add a link
Reference in a new issue