delettion

This commit is contained in:
gauthiier 2019-12-26 11:42:35 +01:00
parent 45393ec97d
commit f159ac9454
8 changed files with 152 additions and 307 deletions

View File

@ -1,3 +0,0 @@
listservs = {'url': 'http://0.0.0.0:5555', 'lists_to_serve': []}
archives = "/Users/gauthiier/DDDDDDD/D/__projects/MAILINGLISTSARCHIVES"
selection = "selection/"

View File

@ -8,6 +8,7 @@ sel_dump = os.path.join(config.selection, "tm-selection-dump.js")
LL = Lock()
# TAGS
def update(tag, newtag, newdesc):
with LL:
d = load_selection()
@ -65,6 +66,30 @@ def new(tag, desc):
return True
# URL
def delete_url(tag, url):
with LL:
d = load_selection()
if tag not in list(d.keys()):
return False
for m in d[tag]['lists']:
if m['url'] == url:
d[tag]['lists'].remove(m)
break
write_selection(d)
sd = load_selection_dump()
if not tag in list(sd.keys()):
logging.warning("possible inconsistency between sel and sel_dump...")
else:
for m in sd[tag]['lists']:
if recursive_delete(m, sd[tag]['lists'], url):
break
write_selection_dump(sd)
return True
def load_selection():
with open(sel, encoding='utf-8') as f:
@ -122,6 +147,18 @@ def recursive_find(msg, li, url):
return msg # <-- parent thread
return None
def recursive_delete(msg, parent_list, url):
if msg['url'] == url:
parent_list.remove(msg)
return True
d = False
if 'follow-up' in list(msg.keys()):
for m in msg['follow-up']:
d = d | recursive_delete(m, msg['follow-up'], url)
return d
def find(li, url):
d = os.path.join(config.archives, li)

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,15 @@
{
"end2end": {
"lists": [],
"desc": "..."
},
"net.art": {
"desc": "...",
"lists": [
{
"list": "crumb",
"url": "https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1310&L=new-media-curating&F=&S=&P=2942"
},
{
"list": "crumb",
"url": "https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1207&L=new-media-curating&F=&S=&P=1869"
}
]
},
"end2end": {
"desc": "...",
"lists": []
],
"desc": "..."
}
}

View File

@ -48,6 +48,11 @@ def tags_w_lists():
if a == "dump":
if sel.commit_from_selection():
return "done"
if a == "delete":
if sel.delete_url(data.get('tag'), data.get('url')):
return "ok"
return "-"
@app.route('/report')
def report():

View File

@ -36,3 +36,7 @@ bb {
width: 100%;
margin-top: 0.5em;
}
li button {
margin-top: 0em;
}

View File

@ -17,6 +17,15 @@ $(document).ready(function(){
});
});
$('.del').click(function(e) {
var li = $(this).parent("li");
$.post('/tags_w_lists', {'action': 'delete', 'tag': li.data("tag"), 'url': li.data("url")}, function(d) {
if(d === 'ok') {
location.reload();
}
});
});
$('#new').click(function(e) {
var v = $(this).text();
console.log(v)

View File

@ -23,7 +23,7 @@
<lists>
<ul>
{% for h in v.lists %}
<li><a href="{{h.url}}" target="_blank">{{h.subject}}</a> -- <i>{{h.author_name}}</i></li>
<li data-tag="{{v.tag}}" data-url="{{h.url}}"><a href="{{h.url}}" target="_blank">{{h.subject}}</a> -- <i>{{h.author_name}}</i> <button class="del">del</button></li>
{% endfor %}
</ul>
</lists>