def cmdListGroup(): nonlocal currentgroup, currentarticle if len(cmd) == 1: if currentgroup is None: s.send(b"412 No group selected\r\n") return group = currentgroup if len(cmd) > 1: try: arg = cmd[1].decode("utf-8") except: s.send(b"501 Bad argument\r\n") return group = arg if len(cmd) > 2: arg2 = cmd[2] m = msgrange.match(arg2) if not m: s.send(b"501 Bad range\r\n") return try: gtethan = int(m.group(1)) if m.group(2): if m.group(3): ltethan = int(m.group(3)) else: ltethan = None else: ltethan = gtethan except: s.send(b"501 Bad range\r\n") return else: gtethan = None ltethan = None x = ftnexport.nntp_group(db, group) if x is None: s.send(b"411 No such group\r\n") return s.send(("211 %d %d %d %s\r\n" % (x[0] or 0, x[1] or 0, x[2] or 0, group)).encode("ascii")) currentgroup = group currentarticle = x[1] # None if None log(str(a) + " group " + currentgroup + " selected, article: " + repr(currentarticle)) # s.send((repr(gtethan)+" - "+repr(ltethan)).encode("ascii")+b"\r\n") for num in ftnexport.nntp_group_list(db, currentgroup, gtethan, ltethan): s.send(str(num).encode("ascii") + b"\r\n") s.send(b".\r\n")
def cmdListGroup(): nonlocal currentgroup, currentarticle if len(cmd)==1: if currentgroup is None: s.send(b"412 No group selected\r\n") return group = currentgroup if len(cmd)>1: try: arg = cmd[1].decode("utf-8") except: s.send(b"501 Bad argument\r\n") return group = arg if len(cmd)>2: arg2=cmd[2] m=msgrange.match(arg2) if not m: s.send(b"501 Bad range\r\n") return try: gtethan=int(m.group(1)) if m.group(2): if m.group(3): ltethan=int(m.group(3)) else: ltethan=None else: ltethan=gtethan except: s.send(b"501 Bad range\r\n") return else: gtethan=None ltethan=None x=ftnexport.nntp_group(db, group) if x is None: s.send(b"411 No such group\r\n") return s.send(("211 %d %d %d %s\r\n"%(x[0] or 0, x[1] or 0, x[2] or 0, group)).encode("ascii")) currentgroup = group currentarticle = x[1] # None if None log(str(a)+" group "+currentgroup+" selected, article: "+repr(currentarticle)) # s.send((repr(gtethan)+" - "+repr(ltethan)).encode("ascii")+b"\r\n") for num in ftnexport.nntp_group_list(db, currentgroup, gtethan, ltethan): s.send(str(num).encode("ascii")+b"\r\n") s.send(b".\r\n")
def cmdGroup(): nonlocal currentgroup if len(cmd)<2: s.send(b"501 No argument\r\n") return try: arg = cmd[1].decode("utf-8") except: s.send(b"501 Bad argument\r\n") return x=ftnexport.nntp_group(db, arg) if x is None: s.send(b"411 No such group\r\n") else: s.send(("211 %d %d %d %s\r\n"%(x[0] or 0, x[1] or 0, x[2] or 0, arg)).encode("ascii")) currentgroup = arg log(str(a)+" group "+arg+" selected")
def cmdGroup(): nonlocal currentgroup, currentarticle if len(cmd)<2: s.send(b"501 No argument\r\n") return try: arg = cmd[1].decode("utf-8") except: s.send(b"501 Bad argument\r\n") return x=ftnexport.nntp_group(db, arg) if x is None: s.send(b"411 No such group\r\n") else: s.send(("211 %d %d %d %s\r\n"%(x[0] or 0, x[1] or 0, x[2] or 0, arg)).encode("ascii")) currentgroup = arg currentarticle = x[1] # None if None log(str(a)+" group "+arg+" selected, article: "+repr(currentarticle))