Example #1
0
def job_quest(keyword):  # 잡퀘

    job_npcs = funcs.read_json(JOB_NPC_FILE)

    if keyword in job_npcs:
        name = job_npcs[keyword]['name']
        pos = job_npcs[keyword]['pos']
        ret = '**' + keyword + '**의 잡 퀘스트 NPC: ' + name + ' (' + pos + ')'
    else:
        ret = '그런 잡을 찾지 못했어요. :sweat_smile:'

    return ret
Example #2
0
def test_read_json():
    """
    Test procedure for the function read_json()
    """
    print('Testing read_json()')

    # Access the file relative to this one, not the user's terminal
    parent = os.path.split(__file__)[0]

    # First test
    fpath = os.path.join(parent,'files','readjson1.json')
    data  = funcs.read_json(fpath)

    introcs.assert_equals(type(data), dict)
    introcs.assert_equals(data, FILE1)

    # Second test
    fpath  = os.path.join(parent,'files','readjson2.json')
    data  = funcs.read_json(fpath)

    introcs.assert_equals(type(data), list)
    introcs.assert_equals(data, FILE2)
Example #3
0
def elite(keyword):  # 마물

    elites = funcs.read_json(ELITE_FILE)
    if keyword in elites:
        elite = elites[keyword]
        title = '마물 **' + keyword + '**'
        footer = '자료: 파이널 판타지 14 인벤'
        img = elite['img']
        ret = funcs.make_embed(title=title, by_me=True, footer=footer, img=img)
        ret.add_field(name='등급', value=elite['grade'])
        ret.add_field(name='지역', value=elite['location'])
        ret.add_field(name='출현 주기', value=elite['period'])
        ret.add_field(name='소환 조건', value=elite['condition'])
    else:
        ret = NO_RESULT_MESSAGE

    return ret
Example #4
0
def hunting(keyword):  # 토벌

    huntings = funcs.read_json(HUNTING_FILE)

    if keyword in huntings:
        pos = huntings[keyword]['pos']
        href = huntings[keyword]['href']
        img = huntings[keyword]['img']

        title = '**' + keyword + '** 출현 장소'
        desc = '[' + pos + '](' + href + ')'
        footer = '자료: 파이널판타지 14 인벤'
        ret = funcs.make_embed(title=title, desc=desc, footer=footer, img=img)
    else:
        ret = NO_RESULT_MESSAGE

    return ret
Example #5
0
def guild_quest(level, job='mercernary'):  # 의뢰

    guild_quests = funcs.read_json(GUILD_QUEST_FILE)

    ret = '길드 의뢰를 찾지 못했어요.'
    for lvl in range(level, 0, -1):
        lvl = str(lvl)
        if lvl in guild_quests:
            quest_type = '용병업' if job == 'mercernary' else '채집·제작업'
            title = '**' + lvl + '**레벨 ' + quest_type + ' 의뢰 수주 장소'
            desc = ''
            for loc in guild_quests[lvl][job]:
                desc += f':white_small_square: {loc}\n'
            ret = funcs.make_embed(title=title, desc=desc, by_me=True)
            break

    return ret
Example #6
0
def entry():
    data = []
    if request.method == 'POST':
        if get_check_psw():
            data = read_json('data.json')
    return render_template('entry.html', data=data)
Example #7
0
def tool(job, level):  # 장비

    tools = funcs.read_json(TOOL_FILE)
    gatherer_equipments = funcs.read_json(GATHERER_EQUIPMENT_FILE)

    if job in tools:
        value_main_tool = value_sub_tool = value_head = value_armor = \
            value_glove = value_waist = value_leg = value_boot = '?'

        has_found_main_tool = has_found_sub_tool = has_found_head = \
            has_found_armor = has_found_glove = has_found_waist = \
            has_found_leg = has_found_boot = False

        for lvl in range(level, 0, -1):
            lvl = str(lvl)
            if not has_found_main_tool and lvl in tools[job]['main']:
                value_main_tool = lvl
                main_tool = tools[job]['main'][lvl]
                value_main_tool += ' ' + main_tool['name']
                has_found_main_tool = True
            if not has_found_sub_tool and lvl in tools[job]['sub']:
                value_sub_tool = lvl
                sub_tool = tools[job]['sub'][lvl]
                if job != '어부':
                    value_sub_tool += sub_tool['name']
                else:
                    value_sub_tool += ', '.join(sub_tool['name'])
                has_found_sub_tool = True
            if job in GATHERERS:
                if not has_found_head and lvl in gatherer_equipments['head']:
                    value_head = lvl
                    head = gatherer_equipments['head'][lvl]
                    value_head += ' ' + head['name']
                    has_found_head = True
                if not has_found_armor and lvl in gatherer_equipments['armor']:
                    value_armor = lvl
                    armor = gatherer_equipments['armor'][lvl]
                    value_armor += ' ' + armor['name']
                    has_found_armor = True
                if not has_found_glove and lvl in gatherer_equipments['glove']:
                    value_glove = lvl
                    glove = gatherer_equipments['glove'][lvl]
                    value_glove += ' ' + glove['name']
                    has_found_glove = True
                if not has_found_waist and lvl in gatherer_equipments['waist']:
                    value_waist = lvl
                    waist = gatherer_equipments['waist'][lvl]
                    value_waist += ' ' + waist['name']
                    has_found_waist = True
                if not has_found_leg and lvl in gatherer_equipments['leg']:
                    value_leg = lvl
                    leg = gatherer_equipments['leg'][lvl]
                    value_leg += ' ' + leg['name']
                    has_found_leg = True
                if not has_found_boot and lvl in gatherer_equipments['boot']:
                    value_boot = lvl
                    boot = gatherer_equipments['boot'][lvl]
                    value_boot += ' ' + boot['name']
                    has_found_boot = True

        title = '**' + job + '**의 ' + str(level) + '레벨 장비'
        name_main = '주 도구' if job != '어부' else '낚싯대'
        name_sub = '보조 도구' if job != '어부' else '미끼'
        ret = funcs.make_embed(title=title, by_me=True)
        ret.add_field(name=name_main, value=value_main_tool)
        ret.add_field(name=name_sub, value=value_sub_tool)
        ret.add_field(name='머리', value=value_head)
        ret.add_field(name='갑옷', value=value_armor)
        ret.add_field(name='장갑', value=value_glove)
        ret.add_field(name='허리', value=value_waist)
        ret.add_field(name='다리', value=value_leg)
        ret.add_field(name='신발', value=value_boot)
    else:
        ret = '그런 잡을 찾지 못했어요. :sweat_smile:'

    return ret