mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 15:38:19 +08:00
fix: skip history for interaction exit notices
This commit is contained in:
@@ -789,6 +789,7 @@ class SiteChain(ChainBase):
|
|||||||
userid=userid,
|
userid=userid,
|
||||||
username=username,
|
username=username,
|
||||||
title="站点交互已结束",
|
title="站点交互已结束",
|
||||||
|
save_history=False,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ class SkillsChain(ChainBase):
|
|||||||
userid=userid,
|
userid=userid,
|
||||||
username=username,
|
username=username,
|
||||||
title="技能交互已结束",
|
title="技能交互已结束",
|
||||||
|
save_history=False,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -2240,6 +2240,7 @@ class SubscribeChain(ChainBase):
|
|||||||
userid=userid,
|
userid=userid,
|
||||||
username=username,
|
username=username,
|
||||||
title="订阅交互已结束",
|
title="订阅交互已结束",
|
||||||
|
save_history=False,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -90,6 +90,30 @@ class TestSkillsCommand(unittest.TestCase):
|
|||||||
handle_text.assert_called_once()
|
handle_text.assert_called_once()
|
||||||
handle_ai.assert_not_called()
|
handle_ai.assert_not_called()
|
||||||
|
|
||||||
|
def test_skills_text_exit_skips_notification_history(self):
|
||||||
|
chain = SkillsChain()
|
||||||
|
skills_interaction_manager.create_or_replace(
|
||||||
|
user_id="10001",
|
||||||
|
channel=MessageChannel.Telegram,
|
||||||
|
source="telegram-test",
|
||||||
|
username="tester",
|
||||||
|
)
|
||||||
|
|
||||||
|
with patch.object(chain, "post_message") as post_message:
|
||||||
|
handled = chain.handle_text_interaction(
|
||||||
|
channel=MessageChannel.Telegram,
|
||||||
|
source="telegram-test",
|
||||||
|
userid="10001",
|
||||||
|
username="tester",
|
||||||
|
text="退出",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(handled)
|
||||||
|
notification = post_message.call_args.args[0]
|
||||||
|
self.assertEqual(notification.title, "技能交互已结束")
|
||||||
|
self.assertFalse(notification.save_history)
|
||||||
|
self.assertIsNone(skills_interaction_manager.get_by_user("10001"))
|
||||||
|
|
||||||
def test_callback_routes_to_skills_chain(self):
|
def test_callback_routes_to_skills_chain(self):
|
||||||
chain = MessageChain()
|
chain = MessageChain()
|
||||||
request = skills_interaction_manager.create_or_replace(
|
request = skills_interaction_manager.create_or_replace(
|
||||||
|
|||||||
@@ -147,6 +147,56 @@ class TestSlashCommandInteractions(unittest.TestCase):
|
|||||||
|
|
||||||
handle_callback.assert_called_once()
|
handle_callback.assert_called_once()
|
||||||
|
|
||||||
|
def test_sites_text_exit_skips_notification_history(self):
|
||||||
|
chain = SiteChain()
|
||||||
|
site_interaction_manager.create_or_replace(
|
||||||
|
user_id="10001",
|
||||||
|
command="/sites",
|
||||||
|
channel=MessageChannel.Telegram,
|
||||||
|
source="telegram-test",
|
||||||
|
username="tester",
|
||||||
|
)
|
||||||
|
|
||||||
|
with patch.object(chain, "post_message") as post_message:
|
||||||
|
handled = chain.handle_text_interaction(
|
||||||
|
channel=MessageChannel.Telegram,
|
||||||
|
source="telegram-test",
|
||||||
|
userid="10001",
|
||||||
|
username="tester",
|
||||||
|
text="退出",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(handled)
|
||||||
|
notification = post_message.call_args.args[0]
|
||||||
|
self.assertEqual(notification.title, "站点交互已结束")
|
||||||
|
self.assertFalse(notification.save_history)
|
||||||
|
self.assertIsNone(site_interaction_manager.get_by_user("10001"))
|
||||||
|
|
||||||
|
def test_subscribes_text_exit_skips_notification_history(self):
|
||||||
|
chain = SubscribeChain()
|
||||||
|
subscribe_interaction_manager.create_or_replace(
|
||||||
|
user_id="10001",
|
||||||
|
command="/subscribes",
|
||||||
|
channel=MessageChannel.Telegram,
|
||||||
|
source="telegram-test",
|
||||||
|
username="tester",
|
||||||
|
)
|
||||||
|
|
||||||
|
with patch.object(chain, "post_message") as post_message:
|
||||||
|
handled = chain.handle_text_interaction(
|
||||||
|
channel=MessageChannel.Telegram,
|
||||||
|
source="telegram-test",
|
||||||
|
userid="10001",
|
||||||
|
username="tester",
|
||||||
|
text="退出",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(handled)
|
||||||
|
notification = post_message.call_args.args[0]
|
||||||
|
self.assertEqual(notification.title, "订阅交互已结束")
|
||||||
|
self.assertFalse(notification.save_history)
|
||||||
|
self.assertIsNone(subscribe_interaction_manager.get_by_user("10001"))
|
||||||
|
|
||||||
def test_sites_renders_markdown_table_when_channel_supports_markdown(self):
|
def test_sites_renders_markdown_table_when_channel_supports_markdown(self):
|
||||||
chain = SiteChain()
|
chain = SiteChain()
|
||||||
fake_sites = [
|
fake_sites = [
|
||||||
|
|||||||
Reference in New Issue
Block a user