Add missing file feeds.toml.

Attempting to improve form Subscribers.
This commit is contained in:
Schimon Jehudah 2024-02-20 13:16:32 +00:00
parent 6f0adcf286
commit 74192965d1

View file

@ -534,6 +534,9 @@ class Slixfeed(slixmpp.ClientXMPP):
self['xep_0050'].add_command(node='credit', self['xep_0050'].add_command(node='credit',
name='🏅️ Credits', name='🏅️ Credits',
handler=self._handle_credit) handler=self._handle_credit)
self['xep_0050'].add_command(node='service',
name='Services',
handler=self._handle_services)
self['xep_0050'].add_command(node='privacy', self['xep_0050'].add_command(node='privacy',
name='Privacy', name='Privacy',
handler=self._handle_privacy) handler=self._handle_privacy)
@ -688,6 +691,7 @@ class Slixfeed(slixmpp.ClientXMPP):
jid_file = jid jid_file = jid
db_file = config.get_pathname_to_database(jid_file) db_file = config.get_pathname_to_database(jid_file)
title = sqlite.get_entry_title(db_file, ix) title = sqlite.get_entry_title(db_file, ix)
title = title[0] if title else 'Untitled'
form = self['xep_0004'].make_form('result', 'Updates') form = self['xep_0004'].make_form('result', 'Updates')
url = sqlite.get_entry_url(db_file, ix) url = sqlite.get_entry_url(db_file, ix)
if url: if url:
@ -699,7 +703,7 @@ class Slixfeed(slixmpp.ClientXMPP):
else: else:
summary = 'No content to show.' summary = 'No content to show.'
form.add_field(ftype="text-multi", form.add_field(ftype="text-multi",
label=(title[0] if title else 'Untitled'), label=title,
value=summary) value=summary)
url = form.add_field(var='url', url = form.add_field(var='url',
label='Link', label='Link',
@ -736,7 +740,7 @@ class Slixfeed(slixmpp.ClientXMPP):
.format(len(results), url)) .format(len(results), url))
options = form.add_field(var='subscription', options = form.add_field(var='subscription',
ftype='list-single', ftype='list-single',
label='Subscription', label='Subscribe',
desc=('Select a subscription to add.'), desc=('Select a subscription to add.'),
required=True) required=True)
for result in results: for result in results:
@ -823,7 +827,7 @@ class Slixfeed(slixmpp.ClientXMPP):
# label='Interval period') # label='Interval period')
options = form.add_field(var='subscriptions', options = form.add_field(var='subscriptions',
ftype='list-multi', ftype='list-multi',
label='Subscription', label='Subscriptions',
desc=('Select subscriptions to remove.'), desc=('Select subscriptions to remove.'),
required=True) required=True)
jid_file = jid jid_file = jid
@ -837,6 +841,7 @@ class Slixfeed(slixmpp.ClientXMPP):
session['allow_complete'] = True session['allow_complete'] = True
session['cancel'] = self._handle_cancel session['cancel'] = self._handle_cancel
session['has_next'] = False session['has_next'] = False
# TODO Refer to confirmation dialog which would display feeds selected
session['next'] = self._handle_subscription_remove session['next'] = self._handle_subscription_remove
session['payload'] = form session['payload'] = form
return session return session
@ -1104,7 +1109,8 @@ class Slixfeed(slixmpp.ClientXMPP):
form.add_field(var='name', form.add_field(var='name',
ftype='text-single', ftype='text-single',
label='Name', label='Name',
value=title) value=title,
required=True)
# NOTE This does not look good in Gajim # NOTE This does not look good in Gajim
# url = form.add_field(ftype='fixed', # url = form.add_field(ftype='fixed',
# value=url) # value=url)
@ -1358,6 +1364,12 @@ class Slixfeed(slixmpp.ClientXMPP):
return session return session
async def _handle_services(self, iq, session):
text_note = 'Syndication services will be published here soon'
session['notes'] = [['info', text_note]]
return session
async def _handle_privacy(self, iq, session): async def _handle_privacy(self, iq, session):
text = ('Privacy Policy') text = ('Privacy Policy')
text += '\n\n' text += '\n\n'
@ -1498,8 +1510,8 @@ class Slixfeed(slixmpp.ClientXMPP):
ftype='list-single', ftype='list-single',
label='Action', label='Action',
value='message') value='message')
options.addOption('Resend authorization To', 'to')
options.addOption('Request authorization From', 'from') options.addOption('Request authorization From', 'from')
options.addOption('Resend authorization To', 'to')
options.addOption('Send message', 'message') options.addOption('Send message', 'message')
options.addOption('Remove', 'remove') options.addOption('Remove', 'remove')
options = form.add_field(var='jid', options = form.add_field(var='jid',
@ -1537,15 +1549,25 @@ class Slixfeed(slixmpp.ClientXMPP):
async def _handle_subscribers_complete(self, payload, session): async def _handle_subscribers_complete(self, payload, session):
values = payload['values'] values = payload['values']
jid = values['jid'] jid = values['jid']
match values['action']:
case 'from':
pass
case 'remove':
XmppRoster.remove(self, jid)
case 'to':
pass
value_message = values['message'] value_message = values['message']
message_body = value_message if value_message else None message_body = value_message if value_message else None
match values['action']:
case 'from':
XmppPresence.subscription(self, jid, 'subscribe')
if not message_body:
message_body = ('This user wants to subscribe to your presence'
'. Click the button labelled "Add/Auth" to '
'authorize the subscription. This will also '
'add the person to your contact list if it is '
'not already there.')
case 'remove':
XmppRoster.remove(self, jid)
if not message_body:
message_body = 'Your authorization has been removed!'
case 'to':
XmppPresence.subscription(self, jid, 'subscribed')
if not message_body:
message_body = 'Your authorization has been approved!'
value_subject = values['subject'] value_subject = values['subject']
message_subject = value_subject if value_subject else None message_subject = value_subject if value_subject else None
if message_subject: if message_subject: