Ver código fonte

Working debug/scroll system

Petra Lamborn 4 anos atrás
pai
commit
1d4eecf350
1 arquivos alterados com 44 adições e 19 exclusões
  1. 44
    19
      fedicurses.py

+ 44
- 19
fedicurses.py Ver arquivo

6
     cy, cx = ncwin.getyx()
6
     cy, cx = ncwin.getyx()
7
     ncwin.move(cy + lines, 0)
7
     ncwin.move(cy + lines, 0)
8
 
8
 
9
+def printPost(win, post, parser):
10
+    win.addstr(post["account"]["acct"], curses.A_BOLD)
11
+    win.addstr(':', curses.A_BOLD)
12
+    newLine(win)
13
+    parser.feed(post["content"])
14
+
15
+def printAtLevel(stdscr, col1, col2, posts, parser, level):
16
+    col1.clear()
17
+    col2.clear()
18
+    col1.move(0, 0)
19
+    col2.move(0, 0)
20
+    printPost(col1, posts[level], parser)
21
+    printPost(col1, posts[(level + 1) % len(posts)], parser)
22
+    try:
23
+        col2.addstr(str(posts[level]))
24
+    except curses.error:
25
+        pass
26
+    stdscr.noutrefresh()
27
+    col1.noutrefresh()
28
+    col2.noutrefresh()
29
+    curses.doupdate()
9
 
30
 
10
 class PostParser(HTMLParser):
31
 class PostParser(HTMLParser):
11
     def __init__(self, ncwin, defncatt):
32
     def __init__(self, ncwin, defncatt):
29
             self.curatt = self.curatt ^ curses.A_BOLD
50
             self.curatt = self.curatt ^ curses.A_BOLD
30
 
51
 
31
     def handle_data(self, data):
52
     def handle_data(self, data):
32
-        self.win.addstr(data, self.curatt)
53
+        try:
54
+            self.win.addstr(data, self.curatt)
55
+        except curses.error:
56
+            pass
33
 
57
 
34
 
58
 
35
 # print(mastodon.timeline()[0]["content"])
59
 # print(mastodon.timeline()[0]["content"])
45
     # stdscr.addstr("test")
69
     # stdscr.addstr("test")
46
     curses.halfdelay(10)
70
     curses.halfdelay(10)
47
     my, mx = stdscr.getmaxyx()
71
     my, mx = stdscr.getmaxyx()
48
-    c1w = c2w = (mx - 1) // 2
72
+    c1w = c2w = (mx - 3) // 2
49
     if (mx % 2) != 0:
73
     if (mx % 2) != 0:
50
         c2w = c2w - 1
74
         c2w = c2w - 1
51
-    colw1 = curses.newwin(1, 1, my - 1, c1w)
52
-    colw2 = curses.newwin(1, 1 + c1w + 1, my - 1, c2w)
53
-    #colw1.border()
54
-    #colw2.border()
75
+    colw1 = curses.newwin(my - 2, c1w, 1, 1)
76
+    colw2 = curses.newwin(my - 2, c2w, 1, 1 + c1w + 2)
77
+    stdscr.border()
78
+    # colw1.border()
79
+    # colw2.border()
55
     parser = PostParser(colw1, 0)
80
     parser = PostParser(colw1, 0)
56
-    colw1.move(0,0)
57
-    try:
58
-        for post in posts:
59
-            colw1.addstr(post["account"]["acct"], curses.A_BOLD)
60
-            colw1.addstr(':', curses.A_BOLD)
61
-            newLine(colw1)
62
-            parser.feed(post["content"])
63
-    except:
64
-        pass
65
-    colw1.refresh()
66
-    colw2.refresh()
67
-    stdscr.refresh()
81
+    # colw1.move(0,0)
82
+    # stdscr.addstr(0, 0, 'test')
83
+    # colw2.addstr(0, 0, 'test2')
84
+    # colw1.addstr(0, 0, 'test3')
68
     i = 'c'
85
     i = 'c'
69
     q = 0
86
     q = 0
87
+    printAtLevel(stdscr, colw1, colw2, posts, parser, q)
70
     con = True
88
     con = True
71
     while con:
89
     while con:
72
         i = stdscr.getch()
90
         i = stdscr.getch()
73
-        con = (i != ord('q'))
91
+        if (i == ord('q')):
92
+            con = False
93
+        elif (i == ord('j')):
94
+            q = (q + 1) % len(posts)
95
+            printAtLevel(stdscr, colw1, colw2, posts, parser, q)
96
+        elif (i == ord('k')):
97
+            q = (q - 1) % len(posts)
98
+            printAtLevel(stdscr, colw1, colw2, posts, parser, q)
74
 
99
 
75
 curses.wrapper(main)
100
 curses.wrapper(main)