Esempio n. 1
0
def lower_salary_companies(request, responder):
    create_feedback_file('placement_info', request)
    year, *_ = extract_entities(request)

    salary = next((i['value'][0]['value']
                   for i in request.entities if i['type'] == 'sys_number'),
                  None)

    responder.frame.pop('year', None)

    companies = qa.get(index='companies', size=100)
    count = 0

    if year:
        for i in companies:
            if year in i['data']:
                if salary > i['data'][year]['salary']:
                    count += 1
    else:
        for i in companies:
            for k in i['data']:
                if salary > i['data'][k]['salary']:
                    count += 1
                    break

    reply = "A total of %s " % (count)
    if count == 1:
        reply += "company"
    else:
        reply += "companies"
    reply += " gave a salary lower than %s lpa" % (salary)
    if year:
        reply += " in the year %s" % (year)
    responder.reply(reply)
Esempio n. 2
0
def list_companies(request, responder):
    create_feedback_file('placement_info',request)
    asked_year = None

    for i in request.entities:
        if i['type'] == 'sys_time':
            asked_year = i['value'][0]['value'][0:4]
            break
    companies = qa.get(index='companies')
    if asked_year == None:
        company_names = [i['name'] for i in companies]
    else:
        responder.frame['year'] = asked_year
        company_names = [i['name']
                         for i in companies if asked_year in i['data']]

    if len(company_names) == 0:
        reply = "No companies came for placements"
        if asked_year != None:
            reply += " in " + asked_year
    else:
        reply = "The companies which came for placements"
        if asked_year != None:
            reply += " in " + asked_year
        reply += " are\n" + "\n".join(company_names)

    responder.reply(reply)
Esempio n. 3
0
def handle_last_recruitment(company_name, responder):
    company = qa.get(index='companies', name=company_name)[0]
    last_recruitment_year = sorted(company['data'].keys())[-1]

    responder.frame['company_name'] = company_name
    responder.frame['year'] = last_recruitment_year

    reply = company_name + " last came for placements in " + last_recruitment_year
    responder.reply(reply)
Esempio n. 4
0
def handle_salary(company_name, year, category, responder):
    company = qa.get(index='companies', name=company_name)[0]

    responder.frame['company_name'] = company_name
    responder.frame['desired_action'] = "%s_salary" % (category)
    if year:
        responder.frame['year'] = year

    if year in company['data']:
        salary = company['data'][year]['%s_sal' % (category)]
        reply = "%s gave a %s salary of %s in the year %s" % (
            company_name, category, salary, year)
        responder.reply(reply)
    elif year:
        reply = company_name + " didn't came for placements in " + year
        responder.reply(reply)
    else:
        responder.reply("Of course, which year?")
        responder.listen()
Esempio n. 5
0
def count_companies(request, responder):
    create_feedback_file('placement_info', request)
    year, *_ = extract_entities(request)

    responder.frame.pop('year', None)

    companies = qa.get(index='companies', size=100)
    count = 0

    for i in companies:
        if year in i['data']:
            count += 1

    reply = "A total of "
    if year != None:
        reply += "%s companies visited in %s." % (count, year)
    else:
        reply += "%s companies have visited till now." % (len(companies))

    responder.reply(reply)
Esempio n. 6
0
def handle_salary(company_name, year, responder):
    company = qa.get(index='companies', name=company_name)[0]

    responder.frame['company_name'] = company_name
    if year:
        responder.frame['year'] = year

    if year in company['data']:
        try:
            salary = company['data'][year]['salary']
            reply = "%s gave a salary of %s lpa in the year %s" % (
                company_name, salary, year)
            responder.reply(reply)
        except KeyError:
            responder.reply("Data Not available")
    elif year:
        reply = company_name + " didn't came for placements in " + year
        responder.reply(reply)
    else:
        responder.frame['desired_action'] = 'salary'
        responder.reply("Of course, which year?")
        responder.listen()
Esempio n. 7
0
def handle_last_recruitment(company_name, category, responder):
    company = qa.get(index='companies', name=company_name)[0]

    if category:
        last_recruitment_year = next(
            (i for i in company['data'] if category in company['data'][i]),
            None)
    else:
        last_recruitment_year = sorted(company['data'].keys())[-1]

    responder.frame['company_name'] = company_name
    responder.frame['year'] = last_recruitment_year
    responder.frame['dept_name'] = category

    reply = company_name
    if last_recruitment_year:
        reply += " last came for placements in " + last_recruitment_year
        if category:
            reply += " for " + category
    elif category:
        reply += " didn't came for placements for " + category

    responder.reply(reply)
Esempio n. 8
0
def handle_total_recruits(company_name, year, category, responder):
    company = qa.get(index='companies', name=company_name)[0]

    responder.frame['company_name'] = company_name

    if category != "all":
        responder.frame['dept_name'] = category

    if year:
        responder.frame['year'] = year

    if year in company['data']:
        recruits = 0
        if category == 'all':
            for k in company['data'][year]:
                if k != 'salary':
                    recruits += company['data'][year][k]
        else:
            try:
                recruits = company['data'][year][category]
            except KeyError:
                reply = "%s didn't recruit for %s dept in %s" % (
                    company_name, category, year)
                responder.reply(reply)
                return
        reply = "%s recruited total of %s students " % (company_name, recruits)
        if category != 'all':
            reply += "from %s " % (category)
        reply += "in the year %s" % (year)
        responder.reply(reply)
    elif year:
        reply = company_name + " didn't came for placements in " + year
        responder.reply(reply)
    else:
        responder.frame['desired_action'] = 'total_recruits'
        responder.reply("Of course, which year?")
        responder.listen()
Esempio n. 9
0
def handle_companies_list(category, year, responder):
    companies = qa.get(index='companies', size=100)
    if year == None:
        company_names = [i['name'] for i in companies]
    else:
        company_names = [i['name'] for i in companies if year in i['data']]

    if year != None and category == "some":
        responder.frame['year'] = year
    elif category == "all":
        responder.frame.pop('year', None)

    if len(company_names) == 0:
        reply = "Data unavailable"
    else:
        reply = "The companies which came for placements"
        if year != None:
            reply += " in " + year
        if category == "all" or len(company_names) < 6:
            reply += " are\n" + "\n".join(company_names)
        elif len(company_names) > 5:
            reply += " are\n" + "\n".join(company_names[:5])
            reply += "\nand %s more...." % (len(company_names) - 5)
    responder.reply(reply)