File: nntp.examples

package info (click to toggle)
tcllib 1.20%2Bdfsg-1
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 68,064 kB
  • sloc: tcl: 216,842; ansic: 14,250; sh: 2,846; xml: 1,766; yacc: 1,145; pascal: 881; makefile: 107; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (76 lines) | stat: -rw-r--r-- 2,199 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

All commands require a 'package require nntp'

1. Connecting to default news server

    nntp::nntp

2. Connecting to non-default news server at non-default port

    nntp::nntp nntpserver.example.net 110

3. Connection to default nntp server and getting a list of newsgroups.

    # It might take awhile to print all the newsgroups
    set connection [nntp::nntp]
    set newsgroups [list ]
    foreach newsgroup [$connection list] {
        lappend newsgroups [lindex $newsgroup 0]
    }
    puts [join $newsgroups ", "]

4. Get basic information about a newsgroup

    set connection [nntp::nntp]
    foreach {total first last group} [$connection group comp.lang.tcl] {
        break
    }
    puts " newsgroup: $group\n message count: $total\n first message: $first\n\
           last message: $last"

5. Get your daily dose of c.l.t. from a tcl prompt

    set connection [nntp::nntp]
    $connection group comp.lang.tcl
    puts [join [$connection article] \n]

    # Repeat this until there are no more messages to read:
    $connection next
    puts [join [$connection article] \n]

6. Get the number, who sent the message, and the subjects of the first
   10 messages in c.l.t

    set connection [nntp::nntp]
    $connection group comp.lang.tcl
    set messageList [list ]

    foreach {total first last group} [$connection group comp.lang.tcl] {
        break
    }

    # Since we only want to see the first 10 messages, set last to $first + 10
    set last [expr {$first + 10}]
    set subjectList [$connection xhdr subject "$first-$last"]
    set fromList [$connection xhdr from "$first-$last"]

    foreach subject $subjectList from $fromList {
        if {([regexp {(\d+)\s+([^\s].*)} $from match number from] > 0) &&
                ([regexp {\d+\s+([^\s].*)} $subject match subject] > 0)} {
            lappend messageList "$number\t$from\t$subject"
        }
    }

    puts [join $messageList \n]

7. Search for all messages written by Jeff Hobbs in c.l.t


    set connection [nntp::nntp]
    $connection group comp.lang.tcl

    foreach {total first last group} [$connection group comp.lang.tcl] {
        break
    }

    $connection xpat from $first-$last "*Jeffrey Hobbs*"