Register a history item when an individual file is viewed that does not match a 'reserved' path

This commit is contained in:
Miguel Jacq 2019-09-02 18:01:56 +10:00
parent 877a73ab59
commit 173b2d3f5e
No known key found for this signature in database
GPG Key ID: EEA4341C6D97A0B6
3 changed files with 44 additions and 1 deletions

View File

@ -341,6 +341,37 @@ class ReceiveHistoryItem(HistoryItem):
self.label.setText(self.get_canceled_label_text(self.started)) self.label.setText(self.get_canceled_label_text(self.started))
class IndividualFileHistoryItem(HistoryItem):
"""
Individual file history item, for share mode viewing of individual files
"""
def __init__(self, common, path):
super(IndividualFileHistoryItem, self).__init__()
self.status = HistoryItem.STATUS_STARTED
self.common = common
self.visited = time.time()
self.visited_dt = datetime.fromtimestamp(self.visited)
# Labels
self.timestamp_label = QtWidgets.QLabel(self.visited_dt.strftime("%b %d, %I:%M%p"))
self.path_viewed_label = QtWidgets.QLabel(strings._('gui_individual_file_download').format(path))
# Layout
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.timestamp_label)
layout.addWidget(self.path_viewed_label)
self.setLayout(layout)
def update(self):
self.label.setText(self.get_finished_label_text(self.started_dt))
self.status = HistoryItem.STATUS_FINISHED
def cancel(self):
self.progress_bar.setFormat(strings._('gui_canceled'))
self.status = HistoryItem.STATUS_CANCELED
class VisitHistoryItem(HistoryItem): class VisitHistoryItem(HistoryItem):
""" """
Download history item, for share mode Download history item, for share mode

View File

@ -28,7 +28,7 @@ from onionshare.web import Web
from ..file_selection import FileSelection from ..file_selection import FileSelection
from .threads import CompressThread from .threads import CompressThread
from .. import Mode from .. import Mode
from ..history import History, ToggleHistory, ShareHistoryItem from ..history import History, ToggleHistory, ShareHistoryItem, IndividualFileHistoryItem
from ...widgets import Alert from ...widgets import Alert
@ -230,6 +230,15 @@ class ShareMode(Mode):
Handle REQUEST_LOAD event. Handle REQUEST_LOAD event.
""" """
self.system_tray.showMessage(strings._('systray_page_loaded_title'), strings._('systray_page_loaded_message')) self.system_tray.showMessage(strings._('systray_page_loaded_title'), strings._('systray_page_loaded_message'))
if not event["path"].startswith(('/favicon.ico', '/download', self.web.static_url_path)) and event["path"] != '/':
item = IndividualFileHistoryItem(self.common, event["path"])
self.history.add(0, item)
self.toggle_history.update_indicator(True)
self.history.completed_count += 1
self.history.update_completed()
self.system_tray.showMessage(strings._('systray_individual_file_downloaded_title'), strings._('systray_individual_file_downloaded_message').format(event["path"]))
def handle_request_started(self, event): def handle_request_started(self, event):
""" """

View File

@ -160,6 +160,8 @@
"systray_receive_started_message": "Someone is sending files to you", "systray_receive_started_message": "Someone is sending files to you",
"systray_website_started_title": "Starting sharing website", "systray_website_started_title": "Starting sharing website",
"systray_website_started_message": "Someone is visiting your website", "systray_website_started_message": "Someone is visiting your website",
"systray_individual_file_downloaded_title": "Individual file loaded",
"systray_individual_file_downloaded_message": "Individual file {} viewed",
"gui_all_modes_history": "History", "gui_all_modes_history": "History",
"gui_all_modes_clear_history": "Clear All", "gui_all_modes_clear_history": "Clear All",
"gui_all_modes_transfer_started": "Started {}", "gui_all_modes_transfer_started": "Started {}",
@ -176,6 +178,7 @@
"gui_receive_mode_no_files": "No Files Received Yet", "gui_receive_mode_no_files": "No Files Received Yet",
"gui_receive_mode_autostop_timer_waiting": "Waiting to finish receiving", "gui_receive_mode_autostop_timer_waiting": "Waiting to finish receiving",
"gui_visit_started": "Someone has visited your website {}", "gui_visit_started": "Someone has visited your website {}",
"gui_individual_file_download": "Viewed {}",
"receive_mode_upload_starting": "Upload of total size {} is starting", "receive_mode_upload_starting": "Upload of total size {} is starting",
"days_first_letter": "d", "days_first_letter": "d",
"hours_first_letter": "h", "hours_first_letter": "h",