software/mumi.git
2 years agoFilter missing messages and return defaults on missing headers.
Ricardo Wurmus [Tue, 31 Mar 2020 13:14:48 +0000 (15:14 +0200)] 
Filter missing messages and return defaults on missing headers.

2 years agomessages: download-message: Reset mtime.
Ricardo Wurmus [Tue, 31 Mar 2020 08:32:59 +0000 (10:32 +0200)] 
messages: download-message: Reset mtime.

2 years agoview/html: Unclutter tables.
Ricardo Wurmus [Tue, 31 Mar 2020 08:07:27 +0000 (10:07 +0200)] 
view/html: Unclutter tables.

2 years agoview/html: Clarify title.
Ricardo Wurmus [Tue, 31 Mar 2020 07:09:09 +0000 (09:09 +0200)] 
view/html: Clarify title.

2 years agoview/html: Hide search hint by default.
Ricardo Wurmus [Tue, 31 Mar 2020 07:07:20 +0000 (09:07 +0200)] 
view/html: Hide search hint by default.

2 years agoview/html: Capitalize placeholder.
Ricardo Wurmus [Tue, 31 Mar 2020 07:05:22 +0000 (09:05 +0200)] 
view/html: Capitalize placeholder.

2 years agoview/html: Replace "Search" text with icon.
Ricardo Wurmus [Tue, 31 Mar 2020 07:04:59 +0000 (09:04 +0200)] 
view/html: Replace "Search" text with icon.

2 years agocss: Expand search bar only on wide screens.
Ricardo Wurmus [Tue, 31 Mar 2020 06:52:36 +0000 (08:52 +0200)] 
css: Expand search bar only on wide screens.

2 years agoAdd inline avatar for narrow screens.
Ricardo Wurmus [Tue, 31 Mar 2020 06:48:48 +0000 (08:48 +0200)] 
Add inline avatar for narrow screens.

2 years agoview/html: Remove excessive bootstrap grid classes.
Ricardo Wurmus [Mon, 30 Mar 2020 22:12:11 +0000 (00:12 +0200)] 
view/html: Remove excessive bootstrap grid classes.

2 years agocss: Add bubble tab to the left of messages on wide screens.
Ricardo Wurmus [Mon, 30 Mar 2020 22:11:48 +0000 (00:11 +0200)] 
css: Add bubble tab to the left of messages on wide screens.

2 years agocss: Make space for avatars on wide screens.
Ricardo Wurmus [Mon, 30 Mar 2020 22:11:34 +0000 (00:11 +0200)] 
css: Make space for avatars on wide screens.

2 years agocss: Hide avatar on narrow screens.
Ricardo Wurmus [Mon, 30 Mar 2020 22:11:14 +0000 (00:11 +0200)] 
css: Hide avatar on narrow screens.

2 years agoscripts: Catch any errors in worker and restart.
Ricardo Wurmus [Mon, 30 Mar 2020 17:32:17 +0000 (19:32 +0200)] 
scripts: Catch any errors in worker and restart.

2 years agocontroller: Remove /snippet handlers.
Ricardo Wurmus [Mon, 30 Mar 2020 17:29:06 +0000 (19:29 +0200)] 
controller: Remove /snippet handlers.

2 years agoview/html: index: Include list of recent and priority bugs.
Ricardo Wurmus [Mon, 30 Mar 2020 17:27:05 +0000 (19:27 +0200)] 
view/html: index: Include list of recent and priority bugs.

Don't use JavaScript for this.

2 years agocss: Separate filters vertically.
Ricardo Wurmus [Mon, 30 Mar 2020 17:22:39 +0000 (19:22 +0200)] 
css: Separate filters vertically.

2 years agobugs: update-bug-database!: Refresh all existing bugs.
Ricardo Wurmus [Mon, 30 Mar 2020 17:20:07 +0000 (19:20 +0200)] 
bugs: update-bug-database!: Refresh all existing bugs.

This includes bugs that have been moved to other packages.

2 years agoview/html: Remove help for obsolete mdate keyword.
Ricardo Wurmus [Mon, 30 Mar 2020 17:10:24 +0000 (19:10 +0200)] 
view/html: Remove help for obsolete mdate keyword.

2 years agoview/html: Update copyright.
Ricardo Wurmus [Mon, 30 Mar 2020 17:08:06 +0000 (19:08 +0200)] 
view/html: Update copyright.

2 years agoscripts: Adjust error message on index failure.
Ricardo Wurmus [Thu, 12 Mar 2020 11:41:31 +0000 (12:41 +0100)] 
scripts: Adjust error message on index failure.

* scripts/mumi.in (mu-index): Don't use undeclared variable COMMAND.

2 years agoscripts: Index mails before initialization.
Ricardo Wurmus [Thu, 12 Mar 2020 11:40:22 +0000 (12:40 +0100)] 
scripts: Index mails before initialization.

2 years agobugs: Use inexact queries for names.
Ricardo Wurmus [Thu, 12 Mar 2020 11:13:29 +0000 (12:13 +0100)] 
bugs: Use inexact queries for names.

* mumi/bugs.scm (bugs-by-submitter, bugs-by-owner): Use LIKE to
compare argument.

2 years agomessages: Implement search with mu.
Ricardo Wurmus [Thu, 12 Mar 2020 11:08:22 +0000 (12:08 +0100)] 
messages: Implement search with mu.

* mumi/messages.scm (search-bugs): Use mu to find messages according
to the query, then filter by message sets from the local database.
(ago, date-term->epoch-seconds): Remove procedures.
(punctuation?): New procedure.
(process-query): Remove handling of attributes; replace filters with
sets; build up mu query and use local database for bug sets.
* mumi/web/controller.scm (controller): Adjust call of search-bugs.

2 years agomessages: recent-bugs: Convert bug id to number.
Ricardo Wurmus [Thu, 12 Mar 2020 11:04:52 +0000 (12:04 +0100)] 
messages: recent-bugs: Convert bug id to number.

* mumi/messages.scm (recent-bugs): Convert bug id field to number.

2 years agomessages: bugs-by-severity: Use local database.
Ricardo Wurmus [Thu, 12 Mar 2020 09:59:38 +0000 (10:59 +0100)] 
messages: bugs-by-severity: Use local database.

* mumi/messages.scm (bugs-by-severity): Use local database instead of
contacting Debbugs.

2 years agomessages: easy-bugs: Use local database.
Ricardo Wurmus [Thu, 12 Mar 2020 09:59:05 +0000 (10:59 +0100)] 
messages: easy-bugs: Use local database.

* mumi/messages.scm (easy-bugs): Implement using bugs-by-tag.

2 years agoscripts: Add worker option to refresh database.
Ricardo Wurmus [Thu, 12 Mar 2020 09:57:47 +0000 (10:57 +0100)] 
scripts: Add worker option to refresh database.

* scripts/mumi.in: Update the mu index and the Sqlite database when
the "--worker" option is provided.

2 years agomumi: Add bugs.
Ricardo Wurmus [Thu, 12 Mar 2020 09:56:47 +0000 (10:56 +0100)] 
mumi: Add bugs.

* mumi/bugs.scm: New file.
* etc/schema.sql: New file.
* Makefile.am (SOURCES): Add mumi/bugs.scm.
(dist_pkgdata_DATA): Add etc/schema.sql.

2 years agoconfigure: Check for presence of Guile-Sqlite3.
Ricardo Wurmus [Thu, 12 Mar 2020 07:27:55 +0000 (08:27 +0100)] 
configure: Check for presence of Guile-Sqlite3.

2 years agoconfig: Add pkg-dir and db-dir.
Ricardo Wurmus [Thu, 12 Mar 2020 07:26:57 +0000 (08:26 +0100)] 
config: Add pkg-dir and db-dir.

* mumi/config.scm.in (%config): Add fields for pkg-dir and db-dir.

2 years agoguix: Use guile-sqlite3.
Ricardo Wurmus [Thu, 12 Mar 2020 07:26:42 +0000 (08:26 +0100)] 
guix: Use guile-sqlite3.

2 years agomessages: Close port after downloading mail.
Ricardo Wurmus [Thu, 12 Mar 2020 07:25:55 +0000 (08:25 +0100)] 
messages: Close port after downloading mail.

* mumi/messages.scm (download-message): Close port when done downloading.

2 years agomessages: Speed up recent-bugs by using mumimu.
Ricardo Wurmus [Wed, 11 Mar 2020 21:03:45 +0000 (22:03 +0100)] 
messages: Speed up recent-bugs by using mumimu.

* mumi/messages.scm (recent-bugs): Don't use the Debbugs search-est
action; collect messages from the mumimu database instead.

2 years agoscripts: Initialize mumimu mail directory.
Ricardo Wurmus [Wed, 11 Mar 2020 21:03:03 +0000 (22:03 +0100)] 
scripts: Initialize mumimu mail directory.

* scripts/mumi.in: Initialize configured mail directory.

2 years agoguix: Simplify by using existing Guix packages.
Ricardo Wurmus [Wed, 11 Mar 2020 20:39:49 +0000 (21:39 +0100)] 
guix: Simplify by using existing Guix packages.

* guix.scm (guile-email-devel, guile-debbugs-devel, mumimu): Remove
variables.

2 years agoconfigure: Check for Guile 3.0 first.
Ricardo Wurmus [Sat, 29 Feb 2020 07:47:10 +0000 (08:47 +0100)] 
configure: Check for Guile 3.0 first.

2 years agoMakefile: Distribute all assets.
Ricardo Wurmus [Sat, 29 Feb 2020 07:46:43 +0000 (08:46 +0100)] 
Makefile: Distribute all assets.

2 years agoconfigure: Don't ask for fibers.
Ricardo Wurmus [Sat, 29 Feb 2020 07:46:22 +0000 (08:46 +0100)] 
configure: Don't ask for fibers.

2 years agocontroller: Match method symbols.
Ricardo Wurmus [Sat, 29 Feb 2020 07:33:25 +0000 (08:33 +0100)] 
controller: Match method symbols.

* mumi/web/controller.scm (controller): Match method symbols.

2 years agoserver: Remove unnecessary indirection.
Ricardo Wurmus [Sat, 29 Feb 2020 07:32:28 +0000 (08:32 +0100)] 
server: Remove unnecessary indirection.

* mumi/web/server.scm (run-controller): Remove.
(handler): Call controller directly.
(start-mumi-web-server): Remove lambda around handler.

2 years agoguix: guile-email-devel: Update to 0.2.1-4.641168f.
Ricardo Wurmus [Thu, 5 Dec 2019 07:42:30 +0000 (08:42 +0100)] 
guix: guile-email-devel: Update to 0.2.1-4.641168f.

* guix.scm (guile-email-devel): Update to 0.2.1-4.641168f.

2 years agoDo not use fibers web server.
Ricardo Wurmus [Sun, 1 Dec 2019 08:40:38 +0000 (09:40 +0100)] 
Do not use fibers web server.

For some reason this no longer works and breaks XML parsing:

In mumi/messages.scm:
   185:16 19 (patch-messages 37444)
In /gnu/store/71pv9hv73vn1zl1jmx7w8jwrpfn2nx0v-profile/share/guile/site/2.2/debbugs/soap.scm:
   163:19 18 (soap-invoke* #<procedure %gnu args> #<procedure get-b�> �)
    157:7 17 (soap-invoke _ _ . _)
In sxml/simple.scm:
    143:4 16 (xml->sxml _ #:namespaces _ #:declare-namespaces? _ # _ �)
    143:4 15 (loop #<input: string 7f3944511e70> () #f _)
    143:4 14 (loop #<input: string 7f3944511e70> () #f _)
    143:4 13 (loop #<input: string 7f3944511e70> () #f _)
    143:4 12 (loop #<input: string 7f3944511e70> () #f _)
    143:4 11 (loop #<input: string 7f3944511e70> () #f _)
    143:4 10 (loop #<input: string 7f3944511e70> () #f _)
In sxml/upstream/SSAX.scm:
  1896:21  9 (_ #<input: string 7f3944511e70> #f #<procedure 7f394e�> �)
In sxml/ssax/input-parse.scm:
   103:21  8 (next-token _ (#\< #\& #\return) _ _)
In ice-9/suspendable-ports.scm:
   683:15  7 (read-delimited _ _ _)
   184:27  6 (fill-input #<input: string 7f3944511e70> _ _)
     72:4  5 (read-bytes #<input: string 7f3944511e70> #vu8(50 89 �) �)
In unknown file:
           4 (port-read #<input: string 7f3944511e70> #vu8(50 89 # �) �)
In web/response.scm:
   254:22  3 (read! #vu8(50 89 84 99 119 77 50 89 120 78 87 81 53 �) �)
In ice-9/suspendable-ports.scm:
   284:18  2 (get-bytevector-n! #<input-output: string 7f3944511ee0> �)
     72:4  1 (read-bytes #<input-output: string 7f3944511ee0> # 663 #)
In unknown file:
           0 (port-read #<input-output: string 7f3944511ee0> # 663 361)
In procedure custom_binary_input_port_read: Value out of range: 1024

2 years agoguix: Use latest version of guile-email.
Ricardo Wurmus [Sun, 1 Dec 2019 08:19:58 +0000 (09:19 +0100)] 
guix: Use latest version of guile-email.

* guix.scm (guile-email-devel): Update to commit
121073cb725aef9baecaac0cfb6cf3f5a287c4e7.

2 years agomumi: Add /easy route to show easy bugs.
Ricardo Wurmus [Thu, 19 Sep 2019 22:34:19 +0000 (00:34 +0200)] 
mumi: Add /easy route to show easy bugs.

* mumi/messages.scm (easy-bugs): New procedure.
* mumi/web/controller.scm (controller): Handle /easy route.

2 years agoguix: Update guile-email-devel.
Ricardo Wurmus [Sun, 28 Jul 2019 07:59:16 +0000 (09:59 +0200)] 
guix: Update guile-email-devel.

2 years agoguix: Update mumimu.
Ricardo Wurmus [Tue, 23 Jul 2019 22:03:01 +0000 (00:03 +0200)] 
guix: Update mumimu.

* guix.scm (mumimu): Update to latest commit.

2 years agoguix: Use mumimu instead of mu.
Ricardo Wurmus [Tue, 23 Jul 2019 11:17:40 +0000 (13:17 +0200)] 
guix: Use mumimu instead of mu.

* guix.scm (mumimu): New variable.
* configure.ac: Check for mumimu.
* mumi/config.scm.in (%config): Update placeholder for mu-executable.

2 years agoguix: Use development version of guile-email.
Ricardo Wurmus [Sun, 21 Jul 2019 19:06:01 +0000 (21:06 +0200)] 
guix: Use development version of guile-email.

* guix.scm (guile-email-devel): New variable.
(guile-debbugs-devel)[propagated-inputs]: Use it.

2 years agomessages: patch-messages: Use download-message.
Ricardo Wurmus [Sun, 21 Jul 2019 11:12:37 +0000 (13:12 +0200)] 
messages: patch-messages: Use download-message.

* mumi/messages.scm (patch-messages): Rewrite to use download-message.

2 years agoscripts: Regularly index the mail directory.
Ricardo Wurmus [Sun, 21 Jul 2019 10:30:44 +0000 (12:30 +0200)] 
scripts: Regularly index the mail directory.

* configure.ac: Detect mu.
* guix.scm: Add "mu" to the environment.
* mumi/config.scm.in (%config)[mu-executable]: Add it.
* scripts/mumi.in: Spawn "mu index" regularly.

2 years agoscripts: Add support for "--fetch" option.
Ricardo Wurmus [Sun, 21 Jul 2019 10:14:00 +0000 (12:14 +0200)] 
scripts: Add support for "--fetch" option.

* scripts/mumi.in (%options): Recognize "fetch" option.
(%default-options): Set default for "fetch".
* mumi/config.scm.in (%config): Remove extraneous quotes from "lists"
and "packages".

2 years agomessages: Add download-message.
Ricardo Wurmus [Sun, 21 Jul 2019 10:12:11 +0000 (12:12 +0200)] 
messages: Add download-message.

* mumi/config.scm.in (%config): Add mail-dir.
* mumi/messages.scm (download-message): New procedure.

2 years agoRemove unused module import.
Ricardo Wurmus [Sun, 21 Jul 2019 09:14:29 +0000 (11:14 +0200)] 
Remove unused module import.

* mumi/messages.scm: Do not import (debbugs rfc822).

2 years agoguix: Update guile-debbugs.
Ricardo Wurmus [Sun, 21 Jul 2019 01:30:30 +0000 (03:30 +0200)] 
guix: Update guile-debbugs.

* guix.scm (guile-debbugs-devel): New variable.

2 years agoconfig: Use %gnu instance function.
Ricardo Wurmus [Sun, 21 Jul 2019 01:29:26 +0000 (03:29 +0200)] 
config: Use %gnu instance function.

* mumi/config.scm.in (%config): Use %gnu function instead of URL string.

2 years agoUpdate styles.
Ricardo Wurmus [Thu, 11 Jul 2019 21:32:25 +0000 (23:32 +0200)] 
Update styles.

* assets/css/bootstrap.css: Replace with Bootstrap 4.1.1.
* assets/css/screen.scm: Remove obsolete rules.
* assets/img/logo.png: Use same logo as on ci.guix.gnu.org.
* assets/js/mumi.js (loadSnippet): Replace outer HTML.
* mumi/config.scm.in (%config): Add submission-bug-email-address.
* mumi/web/view/html.scm (layout, search-form, header, index,
issue-page): Adjust CSS classes.
(index): Mention submission-bug-email-address; merge tables of
recent/priority bugs.
(issue-page): Use DL/DD/DT instead of UL for issue stats.
(list-of-bugs): Return only table rows.
(priority-bugs): Same.
(list-of-matching-bugs): Adjust by adding table and table header.
* mumi/web/controller.scm (controller): Adjust use of PRIORITY-BUGS.

3 years agoview: Handle bugs without subjects gracefully.
Ricardo Wurmus [Wed, 15 May 2019 12:47:32 +0000 (14:47 +0200)] 
view: Handle bugs without subjects gracefully.

* mumi/messages.scm (subject): Always return a string.
* mumi/web/view/html.scm (bug-subject*): New procedure.
(issue-page, list-of-bugs): Use it.

3 years agohtml: Fix URL in footer.
Ricardo Wurmus [Tue, 5 Feb 2019 10:21:55 +0000 (11:21 +0100)] 
html: Fix URL in footer.

3 years agohtml: Add footer.
Ricardo Wurmus [Tue, 5 Feb 2019 10:19:30 +0000 (11:19 +0100)] 
html: Add footer.

* mumi/web/view/html.scm (layout): Add footer.
* assets/css/screen.css (footer): Add new rule.

3 years agohtml: Show block info.
Ricardo Wurmus [Mon, 4 Feb 2019 11:22:46 +0000 (12:22 +0100)] 
html: Show block info.

* mumi/web/view/html.scm (issue-page): Handle blocks and blockedby
fields.
* assets/css/screen.css: Add styles for blockedby and blocks lists.

3 years agohtml: Handle type quirk of "mergedwith" field.
Ricardo Wurmus [Mon, 4 Feb 2019 07:38:12 +0000 (08:38 +0100)] 
html: Handle type quirk of "mergedwith" field.

* mumi/web/view/html.scm (issue-page): Deal with confusing type of
"mergedwith" field, which may be a string representing a list or a
proper number.

3 years agohtml: Show related bugs that were merged.
Ricardo Wurmus [Mon, 4 Feb 2019 00:24:25 +0000 (01:24 +0100)] 
html: Show related bugs that were merged.

* mumi/web/view/html.scm (issue-page): Process "mergedwith" field.
* assets/css/screen.css: Add rules for ul.merged.

3 years agocontroller: Load expensive lists via JavaScript
Ricardo Wurmus [Fri, 1 Feb 2019 11:45:34 +0000 (12:45 +0100)] 
controller: Load expensive lists via JavaScript

* mumi/web/controller.scm (controller): Add routes for rendering
snippets.
* mumi/web/view/html.scm (list-of-bugs): Export; add severity class.
(priority-bugs): New procedure.
(index): Add sections for priority bugs.
* assets/js/mumi.js: New file.
* assets/css/screen.css: Color serious and important bugs.

3 years agomessages: Add bugs-by-severity.
Ricardo Wurmus [Fri, 1 Feb 2019 11:44:40 +0000 (12:44 +0100)] 
messages: Add bugs-by-severity.

* mumi/messages.scm (bugs-by-severity): New procedure.

3 years agomessages: Use status-with-cache.
Ricardo Wurmus [Fri, 1 Feb 2019 11:44:05 +0000 (12:44 +0100)] 
messages: Use status-with-cache.

* mumi/messages.scm (search-bugs, recent-bugs): Use status-with-cache.

3 years agomessages: Add status-with-cache.
Ricardo Wurmus [Fri, 1 Feb 2019 11:43:11 +0000 (12:43 +0100)] 
messages: Add status-with-cache.

* mumi/messages.scm (status-with-cache): New procedure.

3 years agoguix: Add missing module reference.
Ricardo Wurmus [Fri, 1 Feb 2019 09:03:40 +0000 (10:03 +0100)] 
guix: Add missing module reference.

3 years agoview: Treat image attachments as binaries.
Ricardo Wurmus [Mon, 28 Jan 2019 22:55:39 +0000 (23:55 +0100)] 
view: Treat image attachments as binaries.

* mumi/web/view/utils.scm (display-message-body): Handle attachments
of type "image" like any other binary attachment.

3 years agoview: Handle bytevector mime parts.
Ricardo Wurmus [Mon, 28 Jan 2019 22:54:17 +0000 (23:54 +0100)] 
view: Handle bytevector mime parts.

* mumi/web/view/utils.scm (display-message-body): Handle mime entities
with a bytevector part.

3 years agoguix: Remove custom versions of packages.
Ricardo Wurmus [Mon, 28 Jan 2019 12:18:24 +0000 (13:18 +0100)] 
guix: Remove custom versions of packages.

* guix.scm (guile-debbugs-next, guile-email): Remove.

3 years agoguix: Use GUILE-2.2 variable.
Ricardo Wurmus [Mon, 28 Jan 2019 12:17:56 +0000 (13:17 +0100)] 
guix: Use GUILE-2.2 variable.

* guix.scm (mumi)[propagated-inputs]: Replace guile-2.2.4 with guile-2.2.

3 years agoUse the Guix logo instead of GuixSD.
Ricardo Wurmus [Mon, 28 Jan 2019 12:16:38 +0000 (13:16 +0100)] 
Use the Guix logo instead of GuixSD.

* assets/css/screen.css (.logo): New rules.
* assets/img/logo.png: Replace file.
* mumi/web/view/html.scm (header): Remove IMG tag.

3 years agoPresent download links for single part messages.
Arun Isaac [Sun, 27 Jan 2019 10:55:29 +0000 (16:25 +0530)] 
Present download links for single part messages.

* mumi/web/view/utils.scm (display-message-body): Pass single part
messages through the same display-mime-entity function so that
download links are presented for them too.

3 years agoSupport download of single part messages.
Arun Isaac [Sun, 27 Jan 2019 10:49:11 +0000 (16:19 +0530)] 
Support download of single part messages.

* mumi/messages.scm (extract-attachment): Return <email> record for
single part messages.
* mumi/web/download.scm (handle-download): Handle <email> record type.

3 years agoDo not attempt to decode the message body.
Arun Isaac [Sun, 27 Jan 2019 10:45:22 +0000 (16:15 +0530)] 
Do not attempt to decode the message body.

guile-email handles decoding of the message body.

* mumi/web/download.scm (handle-download): Do not attempt to decode
the message body.

3 years agoDisplay subject only when message actually has a subject.
Arun Isaac [Sun, 27 Jan 2019 10:38:15 +0000 (16:08 +0530)] 
Display subject only when message actually has a subject.

* mumi/web/view/html.scm (issue-page): Check if message actually has a
subject field before attempting to display it.

3 years agomumi: extract-attachment: Extract the mime-entity body.
Ricardo Wurmus [Sun, 11 Nov 2018 19:43:56 +0000 (20:43 +0100)] 
mumi: extract-attachment: Extract the mime-entity body.

* mumi/messages.scm (extract-attachment): Extract the mime-entity-body
instead of expecting a tagged list.

3 years agoHandle nested mime entries recursively.
Ricardo Wurmus [Sun, 11 Nov 2018 19:43:04 +0000 (20:43 +0100)] 
Handle nested mime entries recursively.

* mumi/web/view/utils.scm (display-message-body): Apply
display-mime-entity recursively.

3 years agoDeclare Guile JSON as a dependency.
Ricardo Wurmus [Sat, 10 Nov 2018 11:21:16 +0000 (12:21 +0100)] 
Declare Guile JSON as a dependency.

3 years agoUse Guile Fibers web server.
Ricardo Wurmus [Sat, 10 Nov 2018 09:52:49 +0000 (10:52 +0100)] 
Use Guile Fibers web server.

* mumi/web/server.scm (handler): Simplify.
(start-mumi-web-server): Use fiberized server.
* guix.scm: Add guile-fibers to inputs.
* configure.ac: Check for availability of fibers.

3 years agoview: Be more defensive when working with message subject.
Ricardo Wurmus [Fri, 9 Nov 2018 21:41:03 +0000 (22:41 +0100)] 
view: Be more defensive when working with message subject.

* mumi/web/view/html.scm (issue-page): Ensure that the message subject
is always a string before comparing it.

3 years agoRemove dependency on mailutils.
Ricardo Wurmus [Fri, 9 Nov 2018 21:35:47 +0000 (22:35 +0100)] 
Remove dependency on mailutils.

* configure.ac: Remove check for mailutils.
* guix.scm (mailutils-next): Remove variable.
* mumi/message.scm (qp-decoder): Remove procedure.

3 years agomumi: Use (email quoted-printable).
Ricardo Wurmus [Fri, 9 Nov 2018 21:33:19 +0000 (22:33 +0100)] 
mumi: Use (email quoted-printable).

* mumi/web/download.scm (handle-download): Use quoted-printable-decode
from guile-email to decode body.

3 years agomumi: Try harder to extract a display name.
Ricardo Wurmus [Fri, 9 Nov 2018 21:32:32 +0000 (22:32 +0100)] 
mumi: Try harder to extract a display name.

* mumi/messages.scm (extract-name): Try to extract a name from the
email address.

3 years agomumi: Remove "decode" procedure.
Ricardo Wurmus [Fri, 9 Nov 2018 21:23:16 +0000 (22:23 +0100)] 
mumi: Remove "decode" procedure.

* mumi/messages.scm (decode): Remove procedure.

3 years agomumi: Remove parser procedures.
Ricardo Wurmus [Fri, 9 Nov 2018 21:19:38 +0000 (22:19 +0100)] 
mumi: Remove parser procedures.

* mumi/messages.scm (split-multipart-message, read-token, read-until,
read-between, read-key-value-pair, throw-away, parse-multipart-header,
multipart-header?): Remove procedures.

3 years agoguix: Update to latest version of guile-debbugs.
Ricardo Wurmus [Fri, 9 Nov 2018 21:16:41 +0000 (22:16 +0100)] 
guix: Update to latest version of guile-debbugs.

3 years agoguix: Add missing inputs to mailutils-next.
Ricardo Wurmus [Fri, 9 Nov 2018 21:16:12 +0000 (22:16 +0100)] 
guix: Add missing inputs to mailutils-next.

3 years agomumi: handle-download: Operate on mime-entity.
Ricardo Wurmus [Fri, 9 Nov 2018 21:14:54 +0000 (22:14 +0100)] 
mumi: handle-download: Operate on mime-entity.

* mumi/web/download.scm (handle-download): Match on mime-entity
as returned by guile-email instead of custom data structure.

3 years agomumi: extract-attachment: Use the email-body directly.
Ricardo Wurmus [Fri, 9 Nov 2018 21:12:36 +0000 (22:12 +0100)] 
mumi: extract-attachment: Use the email-body directly.

* mumi/messages.scm (extract-attachment): Remove call to
split-multipart-message and use the email body directly.

3 years agoAdd guile-email dependency.
Arun Isaac [Mon, 1 Oct 2018 20:27:24 +0000 (01:57 +0530)] 
Add guile-email dependency.

* configure.ac: Check for guile-email.
* guix.scm (guile-email): New variable.
(mumi)[inputs]: Add guile-email.

3 years agoUse guile-email.
Arun Isaac [Mon, 1 Oct 2018 20:19:49 +0000 (01:49 +0530)] 
Use guile-email.

* mumi/messages.scm (extract-name, extract-email, header, sender,
sender-email, date, subject, message-id, participants, recipients,
closing?, multipart-message?): Modify to use guile-email API.
* mumi/web/view/html.scm (issue-page): Likewise.
* mumi/web/view/utils.scm (content-type->css-class,
display-message-body): Likewise.

3 years agoSimplify definition of nth.
Arun Isaac [Tue, 25 Sep 2018 06:55:08 +0000 (12:25 +0530)] 
Simplify definition of nth.

* mumi/messages.scm (extract-attachment): Simplify definition of nth
by using list-ref instead of drop and first.

3 years agoUse iota generated message numbers instead of debbugs' msg-num.
Arun Isaac [Tue, 25 Sep 2018 06:25:46 +0000 (11:55 +0530)] 
Use iota generated message numbers instead of debbugs' msg-num.

* mumi/messages.scm (extract-attachment): Use nth instead of find to
get message.
* mumi/web/view/html.scm (issue-page): Let show-message accept
message-number as an argument. Update invocations of show-message.
* mumi/web/view/utils.scm (display-message-body): Accept
message-number as an argument.

3 years agoSupport live hacking.
Arun Isaac [Wed, 5 Sep 2018 10:51:23 +0000 (16:21 +0530)] 
Support live hacking.

* scripts/mumi.in: Spawn REPL server to support live hacking, if
--listen-repl is provided on the command line.

3 years agoguix: Update to latest guile-debbugs-next.
Ricardo Wurmus [Tue, 9 Oct 2018 14:06:57 +0000 (16:06 +0200)] 
guix: Update to latest guile-debbugs-next.

3 years agoview: Fix submitter example.
Ricardo Wurmus [Thu, 20 Sep 2018 17:21:11 +0000 (19:21 +0200)] 
view: Fix submitter example.

Reported-by: Pierre Neidhardt <mail@ambrevar.xyz>.
3 years agoview: Show changed message subjects.
Ricardo Wurmus [Thu, 20 Sep 2018 13:46:49 +0000 (15:46 +0200)] 
view: Show changed message subjects.

Suggested-by: Ludovic Courtès <ludo@gnu.org>
3 years agoview: Allow downloading any message part.
Ricardo Wurmus [Fri, 7 Sep 2018 11:01:52 +0000 (13:01 +0200)] 
view: Allow downloading any message part.