Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the search.d/admin script. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | search-refactor |
Files: | files | file ages | folders |
SHA3-256: |
685371e833bc9f5c27c9f0f435cb7fb0 |
User & Date: | drh 2018-02-04 23:30:52.008 |
Context
2018-02-05
| ||
00:47 | On the /search.d/admin page, show the Wapp environment if the env=1 query parameter is present. (check-in: ebe9a614eb user: drh tags: search-refactor) | |
2018-02-04
| ||
23:30 | Add the search.d/admin script. (check-in: 685371e833 user: drh tags: search-refactor) | |
21:41 | Use Wapp to implement the search function. Search can now be run from the command-line using "./tclsh.docsrc doc/search". (check-in: 33c56bee81 user: drh tags: search-refactor) | |
Changes
Changes to main.mk.
︙ | ︙ | |||
157 158 159 160 161 162 163 | $(TCLSH): $(SSRC) $(CC) -O2 -o $@ -I. $(SFLAGS) $(SSRC) $(TCLFLAGS) doc/search: $(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl ./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in >doc/search chmod +x doc/search | | > > > > | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | $(TCLSH): $(SSRC) $(CC) -O2 -o $@ -I. $(SFLAGS) $(SSRC) $(TCLFLAGS) doc/search: $(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl ./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in >doc/search chmod +x doc/search doc/search.d/admin: $(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/admin.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl mkdir -p doc/search.d/ ./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/admin.tcl.in >doc/search.d/admin chmod +x doc/search.d/admin searchdb: $(TCLSH) doc/search doc/search.d/admin ./$(TCLSH) $(DOC)/search/buildsearchdb.tcl # cp $(DOC)/search/search.tcl doc/search.d/admin # chmod +x doc/search.d/admin fts5ext.so: $(DOC)/search/fts5ext.c gcc -shared -fPIC -I. -DSQLITE_EXT \ |
︙ | ︙ |
Added search/admin.tcl.in.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | #!/usr/bin/tclsh.docsrc #### Import of wapp.tcl INCLUDE wapp.tcl #### End of wapp.tcl # Generate all header content for the output document # proc search_header {} { wapp-trim { DOCHEAD {Search SQLite Stats} {../} } } proc wapp-default {} { # When running using the built-in webserver in Wapp (in other words, # when not running as CGI) any filename that contains a "." loads # directly from the filesystem. if {[string match *//127.0.0.1:* [wapp-param BASE_URL]] && [string match *.* [wapp-param PATH_INFO]] } { set altfile [file dir [wapp-param SCRIPT_FILENAME]]/../[wapp-param PATH_INFO] set fd [open $altfile rb] fconfigure $fd -translation binary wapp-unsafe [read $fd] close $fd switch -glob -- $altfile { *.html { wapp-mimetype text/html } *.css { wapp-mimetype text/css } *.gif { wapp-mimetype image/gif } } return } wapp-page-admin } proc wapp-page-admin {} { wapp-allow-xorigin-params wapp-content-security-policy off sqlite3 db2 [file dir [wapp-param SCRIPT_FILENAME]]/searchlog.db set where "" set res "" set ipfilter "" set ipaddr [wapp-param ip] if {$ipaddr!=""} { set where {WHERE ip = $ipaddr} set ipfilter $ipaddr } set checked "" set isUnique [expr {[wapp-param unique 0]+0}] if {$isUnique} { set checked "checked" } set limit [wapp-param limit 10] set s10 "" set s100 "" set s1000 "" if {$limit==10} {set s10 selected} if {$limit==100} {set s100 selected} if {$limit==1000} {set s1000 selected} search_header set self [wapp-param PATH_HEAD] wapp-trim { <div style="margin:2em"> <center> <form action='%url($self)' method='GET'> Results: <select name=limit onChange="this.form.submit()"> <option %html($s10) value="10">10</option> <option %html($s100) value="100">100</option> <option %html($s1000) value="1000">1000</option> </select> IP: <input type=input name=ip value="%html($ipfilter)"> Unique: <input type=checkbox name=unique value=1 $checked onChange="this.form.submit()"> <input type=submit> </form> </center> </div> <table border=1 cellpadding=10 align=center> <tr><td><th>IP <th>Query <th> Results <th> Timestamp } set i 0 db2 eval " SELECT rowid, ip, query, nres, timestamp FROM log $where ORDER BY rowid DESC " { if {$isUnique} { if {[info exists seen($query)]} continue set seen($query) 1 } wapp-trim { <tr><td>%html($rowid) <td><a href='%url($self)?ip=%qp($ip)'>%html($ip)</a> <td><a href='../search?q=%qp($query)&donotlog=1'>%html($query)</a> <td>%html($nres)<td>%html($timestamp) } incr i if {$i >= $limit} break } wapp-subst {</table\n} db2 close } wapp-start $argv |
Changes to search/search.tcl.in.
︙ | ︙ | |||
268 269 270 271 272 273 274 275 276 277 278 279 280 281 | *.css { wapp-mimetype text/css } *.gif { wapp-mimetype image/gif } } } search_header sqlite3 db [file dir [wapp-param SCRIPT_FILENAME]]/search.d/search.db set searchType [wapp-param s d] if {$searchType=="c"} { set cmd searchchanges | > | 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 | *.css { wapp-mimetype text/css } *.gif { wapp-mimetype image/gif } } return } search_header sqlite3 db [file dir [wapp-param SCRIPT_FILENAME]]/search.d/search.db set searchType [wapp-param s d] if {$searchType=="c"} { set cmd searchchanges |
︙ | ︙ |