no tricky characters
This commit is contained in:
parent
6821676853
commit
b83dce2cb3
3 changed files with 28 additions and 1 deletions
|
@ -34,6 +34,14 @@ class UnknownNameError(Exception):
|
||||||
return repr(self.name)
|
return repr(self.name)
|
||||||
|
|
||||||
|
|
||||||
|
class InvalidNameError(Exception):
|
||||||
|
def __init__(self, name):
|
||||||
|
self.name = name
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return repr(self.name)
|
||||||
|
|
||||||
|
|
||||||
class UnknownStreamTypeError(Exception):
|
class UnknownStreamTypeError(Exception):
|
||||||
def __init__(self, stream_type):
|
def __init__(self, stream_type):
|
||||||
self.stream_type = stream_type
|
self.stream_type = stream_type
|
||||||
|
|
|
@ -14,6 +14,7 @@ BITTREX_FEE = 0.0025
|
||||||
|
|
||||||
# Metadata version
|
# Metadata version
|
||||||
SOURCE_TYPES = ['lbry_sd_hash', 'url', 'btih']
|
SOURCE_TYPES = ['lbry_sd_hash', 'url', 'btih']
|
||||||
|
NAME_ALLOWED_CHARSET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0987654321-'
|
||||||
BASE_METADATA_FIELDS = ['title', 'description', 'author', 'language', 'license', 'content-type', 'sources']
|
BASE_METADATA_FIELDS = ['title', 'description', 'author', 'language', 'license', 'content-type', 'sources']
|
||||||
OPTIONAL_METADATA_FIELDS = ['thumbnail', 'preview', 'fee', 'contact', 'pubkey']
|
OPTIONAL_METADATA_FIELDS = ['thumbnail', 'preview', 'fee', 'contact', 'pubkey']
|
||||||
|
|
||||||
|
@ -35,6 +36,12 @@ FEE_REVISIONS = {}
|
||||||
FEE_REVISIONS[FV001] = {'required': BASE_FEE_FIELDS, 'optional': []}
|
FEE_REVISIONS[FV001] = {'required': BASE_FEE_FIELDS, 'optional': []}
|
||||||
|
|
||||||
|
|
||||||
|
def verify_name_characters(name):
|
||||||
|
for c in name:
|
||||||
|
assert c in NAME_ALLOWED_CHARSET, "Invalid character"
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class LBRYFeeValidator(dict):
|
class LBRYFeeValidator(dict):
|
||||||
def __init__(self, fee_dict):
|
def __init__(self, fee_dict):
|
||||||
dict.__init__(self)
|
dict.__init__(self)
|
||||||
|
|
|
@ -33,7 +33,7 @@ from lbrynet.core.PaymentRateManager import PaymentRateManager
|
||||||
from lbrynet.core.server.BlobAvailabilityHandler import BlobAvailabilityHandlerFactory
|
from lbrynet.core.server.BlobAvailabilityHandler import BlobAvailabilityHandlerFactory
|
||||||
from lbrynet.core.server.BlobRequestHandler import BlobRequestHandlerFactory
|
from lbrynet.core.server.BlobRequestHandler import BlobRequestHandlerFactory
|
||||||
from lbrynet.core.server.ServerProtocol import ServerProtocolFactory
|
from lbrynet.core.server.ServerProtocol import ServerProtocolFactory
|
||||||
from lbrynet.core.Error import UnknownNameError, InsufficientFundsError
|
from lbrynet.core.Error import UnknownNameError, InsufficientFundsError, InvalidNameError
|
||||||
from lbrynet.lbryfile.StreamDescriptor import LBRYFileStreamType
|
from lbrynet.lbryfile.StreamDescriptor import LBRYFileStreamType
|
||||||
from lbrynet.lbryfile.client.LBRYFileDownloader import LBRYFileSaverFactory, LBRYFileOpenerFactory
|
from lbrynet.lbryfile.client.LBRYFileDownloader import LBRYFileSaverFactory, LBRYFileOpenerFactory
|
||||||
from lbrynet.lbryfile.client.LBRYFileOptions import add_lbry_file_to_sd_identifier
|
from lbrynet.lbryfile.client.LBRYFileOptions import add_lbry_file_to_sd_identifier
|
||||||
|
@ -42,6 +42,7 @@ from lbrynet.lbrynet_daemon.LBRYDownloader import GetStream
|
||||||
from lbrynet.lbrynet_daemon.LBRYPublisher import Publisher
|
from lbrynet.lbrynet_daemon.LBRYPublisher import Publisher
|
||||||
from lbrynet.lbrynet_daemon.LBRYExchangeRateManager import ExchangeRateManager
|
from lbrynet.lbrynet_daemon.LBRYExchangeRateManager import ExchangeRateManager
|
||||||
from lbrynet.core import utils
|
from lbrynet.core import utils
|
||||||
|
from lbrynet.core.LBRYMetadata import verify_name_characters
|
||||||
from lbrynet.core.utils import generate_id
|
from lbrynet.core.utils import generate_id
|
||||||
from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
|
from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
|
||||||
from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE, DEFAULT_MAX_SEARCH_RESULTS, KNOWN_DHT_NODES, DEFAULT_MAX_KEY_FEE, \
|
from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE, DEFAULT_MAX_SEARCH_RESULTS, KNOWN_DHT_NODES, DEFAULT_MAX_KEY_FEE, \
|
||||||
|
@ -1165,6 +1166,12 @@ class LBRYDaemon(jsonrpc.JSONRPC):
|
||||||
return defer.succeed(True)
|
return defer.succeed(True)
|
||||||
|
|
||||||
def _resolve_name(self, name, force_refresh=False):
|
def _resolve_name(self, name, force_refresh=False):
|
||||||
|
try:
|
||||||
|
verify_name_characters(name)
|
||||||
|
except:
|
||||||
|
log.error("Bad name")
|
||||||
|
return defer.fail(InvalidNameError("Bad name"))
|
||||||
|
|
||||||
def _cache_stream_info(stream_info):
|
def _cache_stream_info(stream_info):
|
||||||
def _add_txid(txid):
|
def _add_txid(txid):
|
||||||
self.name_cache[name]['txid'] = txid
|
self.name_cache[name]['txid'] = txid
|
||||||
|
@ -1975,6 +1982,11 @@ class LBRYDaemon(jsonrpc.JSONRPC):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
name = p['name']
|
name = p['name']
|
||||||
|
try:
|
||||||
|
verify_name_characters(name)
|
||||||
|
except:
|
||||||
|
log.error("Bad name")
|
||||||
|
return defer.fail(InvalidNameError("Bad name"))
|
||||||
bid = p['bid']
|
bid = p['bid']
|
||||||
file_path = p['file_path']
|
file_path = p['file_path']
|
||||||
metadata = p['metadata']
|
metadata = p['metadata']
|
||||||
|
|
Loading…
Reference in a new issue