示例#1
0
def save(sibling_node_id, name_edit, url_edit, update_interval_edit,
         mark_as_read_checkbox, button):
    url = url_edit.get_edit_text()
    feed_type = sourceservice.detect_feed_type(url)
    link = sourceservice.get_link(url, feed_type)

    config_adapter = ConfigAdapter()
    db = DatabaseAdapter()

    sibling_node = next(db.get_node(sibling_node_id))
    config_node = config_adapter.get_source(sibling_node_id)
    new_node_id = sourceservice.generate_node_id()
    parent_node_id = sibling_node['parent_id']

    new_node = db.add_source(new_node_id, parent_node_id,
                             name_edit.get_edit_text(), feed_type, url,
                             update_interval_edit.get_edit_text())
    db.close_connection()

    config_adapter.add_source(sibling_node_id, new_node_id,
                              name_edit.get_edit_text(), feed_type, url, link,
                              update_interval_edit.get_edit_text(),
                              mark_as_read_checkbox.get_state())
    state.sources = config_adapter.get_sources()

    main.set_focused_item()
    rows = db.get_source_items(state.selected_node_id, state.node_id_unreads,
                               state.selected_filter)
    main.display(state.loop, rows)
示例#2
0
文件: source.py 项目: mylk/termrea
def generate_node_id():
    db = DatabaseAdapter()

    node = ''
    while node is not None:
        new_node_id = ''.join(random.choices(string.ascii_lowercase, k=7))
        node = db.get_node(new_node_id).fetchone()

    db.close_connection()

    return new_node_id
示例#3
0
文件: delete.py 项目: mylk/termrea
def display(node_id):
    if node_id == state.node_id_unreads:
        return

    db = DatabaseAdapter()
    node = next(db.get_node(node_id))
    db.close_connection()

    # body
    body_pile = urwid.Pile([
        urwid.Divider(),
        urwid.Text('Are you sure you want to delete source "{}"?'.format(
            node['title']),
                   align='center')
    ])
    body_filler = urwid.Filler(body_pile, valign='top')
    body_padding = urwid.Padding(body_filler, left=1, right=1)
    state.body = urwid.LineBox(body_padding)

    # footer
    button_yes = urwid.Button('Yes')
    urwid.connect_signal(button_yes, 'click', delete, user_args=[node])
    button_no = urwid.Button('No', close)
    footer = urwid.GridFlow([button_yes, button_no], 7, 1, 1, 'center')

    # layout
    layout = urwid.Frame(state.body, footer=footer, focus_part='footer')

    state.body = state.loop.widget
    pile = urwid.Pile([layout])
    over = urwid.Overlay(pile,
                         state.body,
                         align='center',
                         valign='middle',
                         width=41,
                         height=7)

    state.loop.widget = over