Exemple #1
0
def cpsk_match(event, departure, dest, *args):
    """Searches for bus or train info in Slovakia.

    Examples:
        bus z BA do TO
        najblizsi vlak z Topolcany do Prievidza
        spoj z KE do Trencin
        zajtra bus z TO do Jacovce
        pozajtra o 20:30 bus z TO do BA
    """
    msg = event.meta['body']

    date = ''
    if 'zajtra' in msg:
        date = (datetime.date.today() + datetime.timedelta(days=1)) \
                    .strftime("%d.%m.%Y")
    elif 'pozajtra' in msg:
        date = (datetime.date.today() + datetime.timedelta(days=2)) \
                    .strftime("%d.%m.%Y")

    time_match = re.search("([0-9]+:[0-9]+)", msg)
    time = ''
    if time_match is not None:
        time = msg[time_match.start():time_match.end()]

    vehicle = 'vlakbus'
    if 'vlak' in msg:
        vehicle = 'vlak'
    elif 'bus' in msg:
        vehicle = 'bus'

    routes = cpsk.get_routes(departure, dest, vehicle=vehicle,
                                 time=time, date=date)

    return routes[0].__repr__()
Exemple #2
0
    def get_line(self, msg, args, vehicle):
        """Search for bus/train based on given vehicle argument."""
        nick = msg.frm.nick

        if '-' in args:
            args = split_args_by(args, '-')
        else:
            args = args.split(' ')

        if len(args) >= 1 and args[0] == 'next':
            if nick not in searched:
                return 'No next line'
            args = self.searched_incrementer(nick)

        if len(args) < 2:
            return 'Not enough arguments specified. See !help for usage'

        dep = args[0]
        dest = args[1]

        time = args[2] if len(args) > 2 else ''
        date = args[3] if len(args) > 3 else ''

        if dep == dest:
            return 'You joker'

        r = cpsk.get_routes(dep, dest, vehicle=vehicle, time=time, date=date)
        return self.send_output(nick, dep, dest, date, result=r)
Exemple #3
0
    def line_match(self, msg, match):
        """Search for mhd in BA or bus/train lines in Slovakia.

        Examples:
            bus z mlyny na hlst
            vlak z BA do TO
            bus z BA do LM 18:00 20.12.2014
            spoj zo Zochova no mlyny
        """
        f = match.group(1)
        t = match.group(2)
        time = match.group(3)
        date = match.group(4)

        if f == t:
            return 'Not in this universe.'

        time = '' if time is None else time
        date = '' if date is None else date

        body = msg.body

        if ('zajtra' in body or 'pozajtra' in body) and date is not '':
            if 'pozajtra' in body:
                delta = 2
            elif 'zajtra' in body:
                delta = 1
            date = (datetime.date.today() + datetime.timedelta(days=delta)) \
                .strftime('%d.%m.%Y')

        vehicle = 'vlakbus'
        if 'bus' in body:
            vehicle = 'bus'
        elif 'vlak' in body:
            vehicle = 'vlak'

        r = cpsk.get_routes(f, t, vehicle=vehicle, time=time, date=date)
        if not len(r):
            f = imhdsk.clear_stop(imhdsk.suggest(
                                  self.rootify(f.split(' ')[0]))[0]['name'])
            t = imhdsk.clear_stop(imhdsk.suggest(
                                  self.rootify(t.split(' ')[0]))[0]['name'])

            r = imhdsk.routes(f, t, time=time, date=date)

        return self.send_output(msg.frm.nick, f, t, date, result=r)
Exemple #4
0
def get_line(nick, args, vehicle):
    if '-' in args:
        args = split_args_by(args, '-')
    else:
        args = args.split(' ')

    if len(args) < 2:
        return 'Not enough arguments specified. See help for usage'

    dep = args[0]
    dest = args[1]

    time = args[2] if len(args) > 2 else ''
    date = args[3] if len(args) > 3 else ''

    if dep == dest:
        return 'You joker'

    r = cpsk.get_routes(dep, dest, vehicle=vehicle, time=time, date=date)
    return generate_output(r)
Exemple #5
0
def get_line(event, vehicle):
    """Searches for bus/train based on given vehicle argument"""
    args = event.args

    if len(args) < 2:
        return

    if '-' in args:
        a = ' '.join(args)
        args = map(lambda x: x.strip(), a.split('-'))

    dep = args[0]
    dest = args[1]

    time = args[2] if len(args) > 2 else ''
    date = args[3] if len(args) > 3 else ''

    if dep == dest:
        return "You joker"

    r = cpsk.get_routes(dep, dest, vehicle=vehicle, time=time, date=date)
    return r[0].__repr__() if len(r) else "Nothing found"
Exemple #6
0
def get_line(event, vehicle):
    """Searches for bus/train based on given vehicle argument"""
    args = event.args

    if len(args) < 2:
        return

    if '-' in args:
        a = ' '.join(args)
        args = map(lambda x: x.strip(), a.split('-'))

    dep = args[0]
    dest = args[1]

    time = args[2] if len(args) > 2 else ''
    date = args[3] if len(args) > 3 else ''

    if dep == dest:
        return "You joker"

    r = cpsk.get_routes(dep, dest, vehicle=vehicle, time=time, date=date)
    return r[0].__repr__() if len(r) else "Nothing found"
Exemple #7
0
def cpsk_match(event, departure, dest, *args):
    """Searches for bus or train info in Slovakia.

    Examples:
        bus z BA do TO
        najblizsi vlak z Topolcany do Prievidza
        spoj z KE do Trencin
        zajtra bus z TO do Jacovce
        pozajtra o 20:30 bus z TO do BA
    """
    msg = event.meta['body']

    date = ''
    if 'zajtra' in msg:
        date = (datetime.date.today() + datetime.timedelta(days=1)) \
                    .strftime("%d.%m.%Y")
    elif 'pozajtra' in msg:
        date = (datetime.date.today() + datetime.timedelta(days=2)) \
                    .strftime("%d.%m.%Y")

    time_match = re.search("([0-9]+:[0-9]+)", msg)
    time = ''
    if time_match is not None:
        time = msg[time_match.start():time_match.end()]

    vehicle = 'vlakbus'
    if 'vlak' in msg:
        vehicle = 'vlak'
    elif 'bus' in msg:
        vehicle = 'bus'

    routes = cpsk.get_routes(departure,
                             dest,
                             vehicle=vehicle,
                             time=time,
                             date=date)

    return routes[0].__repr__()
Exemple #8
0
# -*- coding: utf-8 -*-
import cpsk
import sys

if (sys.version).startswith('2'):
    reload(sys)
    sys.setdefaultencoding("utf-8")

city = 'presov'
mhd_routes = cpsk.get_routes('Čierny most',
                             'Pod Táborom',
                             vehicle=city,
                             time="14:20")
print('Looking for MHD lines for ' + city)
for b in mhd_routes:
    print(b)

print()

bus_routes = cpsk.get_routes('TO', 'BA', vehicle='bus')
print('Looking for bus lines')
for b in bus_routes:
    print(b)

print()

train_routes = cpsk.get_routes('NR', 'TO', vehicle='vlak')
print('Looking for train lines')
for t in train_routes:
    print(t)
Exemple #9
0
# -*- coding: utf-8 -*-
import cpsk
import sys


if (sys.version).startswith('2'):
    reload(sys)
    sys.setdefaultencoding("utf-8")

bus_routes = cpsk.get_routes('TO', 'BA', vehicle='bus')
print('Looking for bus lines')
for b in bus_routes:
    print(b)

print()

train_routes = cpsk.get_routes('NR', 'TO', vehicle='vlak')
print('Looking for train lines')
for t in train_routes:
    print(t)

print()

routes = cpsk.get_routes('KE', 'TO')
print('Looking for lines')
for r in routes:
    print(r)

print()

inter_routes = cpsk.get_routes('Brno', 'BA', vehicle='vlak')
Exemple #10
0
# -*- coding: utf-8 -*-
import cpsk
import sys


if (sys.version).startswith('2'):
    reload(sys)
    sys.setdefaultencoding("utf-8")

bus_routes = cpsk.get_routes('TO', 'BA', vehicle='bus')
print('Looking for bus lines')
for b in bus_routes:
    print(b)

print()

bus_routes_direct = cpsk.get_routes('Zilina', 'Poprad', vehicle='bus',
                                    direct=True)
print('Looking for bus lines')
for b in bus_routes_direct:
    print(b)

print()

train_routes = cpsk.get_routes('NR', 'TO', vehicle='vlak')
print('Looking for train lines')
for t in train_routes:
    print(t)

print()