summaryrefslogtreecommitdiff
path: root/crocoite
diff options
context:
space:
mode:
Diffstat (limited to 'crocoite')
-rw-r--r--crocoite/controller.py6
-rw-r--r--crocoite/irc.py22
2 files changed, 22 insertions, 6 deletions
diff --git a/crocoite/controller.py b/crocoite/controller.py
index 9105997..432d434 100644
--- a/crocoite/controller.py
+++ b/crocoite/controller.py
@@ -320,7 +320,11 @@ class RecursiveController:
logger = self.logger.bind (url=url)
def formatCommand (e):
- return e.format (url=url, dest=dest.name)
+ # provide means to disable variable expansion
+ if e.startswith ('!'):
+ return e[1:]
+ else:
+ return e.format (url=url, dest=dest.name)
def formatPrefix (p):
return p.format (host=url.host, date=datetime.utcnow ().isoformat ())
diff --git a/crocoite/irc.py b/crocoite/irc.py
index 973d7d1..c9b8cd7 100644
--- a/crocoite/irc.py
+++ b/crocoite/irc.py
@@ -32,6 +32,8 @@ from functools import wraps
import bottom
import websockets
+from .util import StrJsonEncoder
+
### helper functions ###
def prettyTimeDelta (seconds):
"""
@@ -445,15 +447,25 @@ class Chromebot (ArgparseBot):
logger = self.logger.bind (job=j.id)
- cmdline = ['crocoite-recursive', args.url, '--tempdir', self.tempdir,
- '--prefix', j.id + '-{host}-{date}-', '--policy',
- args.recursive, '--concurrency', str (args.concurrency),
- self.destdir]
-
showargs = {
'recursive': args.recursive,
'concurrency': args.concurrency,
}
+ warcinfo = {'chromebot': {
+ 'jobid': j.id,
+ 'user': user.name,
+ 'queued': j.started,
+ 'url': args.url,
+ }}
+ warcinfo['chromebot'].update (showargs)
+ # prefix warcinfo with !, so it won’t get expanded
+ cmdline = ['crocoite-recursive', args.url, '--tempdir', self.tempdir,
+ '--prefix', j.id + '-{host}-{date}-', '--policy',
+ args.recursive, '--concurrency', str (args.concurrency),
+ self.destdir, '--', 'crocoite-grab', '--warcinfo',
+ '!' + json.dumps (warcinfo, cls=StrJsonEncoder), '{url}',
+ '{dest}']
+
strargs = ', '.join (map (lambda x: '{}={}'.format (*x), showargs.items ()))
reply (f'{args.url} has been queued as {j.id} with {strargs}')
logger.info ('queue', user=user.name, url=args.url, cmdline=cmdline,