forked from LBRYCommunity/lbry-sdk
59 lines
2.4 KiB
Python
59 lines
2.4 KiB
Python
from lbrynet.lbryfile.StreamDescriptor import EncryptedFileStreamType
|
|
from lbrynet.lbryfile.StreamDescriptor import EncryptedFileStreamDescriptorValidator
|
|
from lbrynet.core.DownloadOption import DownloadOption, DownloadOptionChoice
|
|
|
|
|
|
def add_lbry_file_to_sd_identifier(sd_identifier):
|
|
sd_identifier.add_stream_type(
|
|
EncryptedFileStreamType, EncryptedFileStreamDescriptorValidator, EncryptedFileOptions())
|
|
|
|
|
|
class EncryptedFileOptions(object):
|
|
def __init__(self):
|
|
pass
|
|
|
|
def get_downloader_options(self, sd_validator, payment_rate_manager):
|
|
prm = payment_rate_manager
|
|
|
|
def get_default_data_rate_description():
|
|
if prm.base.min_blob_data_payment_rate is None:
|
|
return "Application default (%s LBC/MB)" % str(prm.base.min_blob_data_payment_rate)
|
|
else:
|
|
return "%f LBC/MB" % prm.base.min_blob_data_payment_rate
|
|
|
|
rate_choices = []
|
|
rate_choices.append(DownloadOptionChoice(
|
|
prm.base.min_blob_data_payment_rate,
|
|
"No change - %s" % get_default_data_rate_description(),
|
|
"No change - %s" % get_default_data_rate_description()))
|
|
if prm.base.min_blob_data_payment_rate is not None:
|
|
rate_choices.append(DownloadOptionChoice(
|
|
None,
|
|
"Application default (%s LBC/MB)" % str(prm.base.min_blob_data_payment_rate),
|
|
"Application default (%s LBC/MB)" % str(prm.base.min_blob_data_payment_rate)))
|
|
rate_choices.append(DownloadOptionChoice(float,
|
|
"Enter rate in LBC/MB",
|
|
"Enter rate in LBC/MB"))
|
|
|
|
options = [
|
|
DownloadOption(
|
|
rate_choices,
|
|
"Rate which will be paid for data",
|
|
"data payment rate",
|
|
prm.base.min_blob_data_payment_rate,
|
|
get_default_data_rate_description()
|
|
),
|
|
DownloadOption(
|
|
[
|
|
DownloadOptionChoice(bool,
|
|
None,
|
|
None,
|
|
bool_options_description=("Allow", "Disallow")),
|
|
],
|
|
"Allow reuploading data downloaded for this file",
|
|
"allow upload",
|
|
True,
|
|
"Allow"
|
|
),
|
|
]
|
|
return options
|