diff --git a/.gitignore b/.gitignore index 356b3db2..a45e5a85 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules .idea +config/config.json config/sequelizeCliConfig.js config/speechConfig.js \ No newline at end of file diff --git a/helpers/sequelizeHelpers.js b/helpers/sequelizeHelpers.js new file mode 100644 index 00000000..3b36749d --- /dev/null +++ b/helpers/sequelizeHelpers.js @@ -0,0 +1,25 @@ +module.exports = { + returnShortId: function (result, longId) { + let claimIndex; + let shortId = longId.substring(0, 1); // default sort id is the first letter + let shortIdLength = 0; + // find the index of this claim id + claimIndex = result.findIndex(element => { + return element.claimId === longId; + }); + if (claimIndex < 0) { + throw new Error('claim id not found in claims list'); + } + // get an array of all claims with lower height + let possibleMatches = result.slice(0, claimIndex); + // remove certificates with the same prefixes until none are left. + while (possibleMatches.length > 0) { + shortIdLength += 1; + shortId = longId.substring(0, shortIdLength); + possibleMatches = possibleMatches.filter(element => { + return (element.claimId.substring(0, shortIdLength) === shortId); + }); + } + return shortId; + }, +}; diff --git a/models/certificate.js b/models/certificate.js index 59480a60..5d188e9a 100644 --- a/models/certificate.js +++ b/models/certificate.js @@ -1,30 +1,7 @@ const logger = require('winston'); +const { returnShortId } = require('../helpers/sequelizeHelpers.js'); const NO_CHANNEL = 'NO_CHANNEL'; -function sortResult (result, longId) { - let claimIndex; - let shortId = longId.substring(0, 1); // default sort id is the first letter - let shortIdLength = 0; - // find the index of this certificate - claimIndex = result.findIndex(element => { - return element.claimId === longId; - }); - if (claimIndex < 0) { throw new Error('channelId not found in possible sorted list') } - // get an array of all certificates with lower height - let possibleMatches = result.slice(0, claimIndex); - // remove certificates with the same prefixes until none are left. - while (possibleMatches.length > 0) { - shortIdLength += 1; - shortId = longId.substring(0, shortIdLength); - possibleMatches = possibleMatches.filter(element => { - return (element.claimId.substring(0, shortIdLength) === shortId); - }); - } - // return the short Id - logger.debug('short channel id ===', shortId); - return shortId; -} - module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { const Certificate = sequelize.define( 'Certificate', @@ -137,7 +114,7 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { case 0: throw new Error('That is an invalid channel name'); default: - return resolve(sortResult(result, longChannelId)); + return resolve(returnShortId(result, longChannelId)); } }) .catch(error => { diff --git a/models/claim.js b/models/claim.js index 04d6a4dd..07d72db8 100644 --- a/models/claim.js +++ b/models/claim.js @@ -1,30 +1,7 @@ const logger = require('winston'); +const { returnShortId } = require('../helpers/sequelizeHelpers.js'); const NO_CLAIM = 'NO_CLAIM'; -function sortResult (result, longId) { - let claimIndex; - let shortId = longId.substring(0, 1); // default sort id is the first letter - let shortIdLength = 0; - // find the index of this certificate - claimIndex = result.findIndex(element => { - return element.claimId === longId; - }); - if (claimIndex < 0) { throw new Error('claimid not found in possible sorted list') } - // get an array of all certificates with lower height - let possibleMatches = result.slice(0, claimIndex); - // remove certificates with the same prefixes until none are left. - while (possibleMatches.length > 0) { - shortIdLength += 1; - shortId = longId.substring(0, shortIdLength); - possibleMatches = possibleMatches.filter(element => { - return (element.claimId.substring(0, shortIdLength) === shortId); - }); - } - // return the short Id - logger.debug('short claim id ===', shortId); - return shortId; -} - module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { const Claim = sequelize.define( 'Claim', @@ -194,7 +171,7 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => { case 0: throw new Error('That is an invalid claim name'); default: - resolve(sortResult(result, claimId)); + resolve(returnShortId(result, claimId)); } }) .catch(error => { diff --git a/public/assets/css/general.css b/public/assets/css/general.css index 66b10b2d..2d51a5a5 100644 --- a/public/assets/css/general.css +++ b/public/assets/css/general.css @@ -152,7 +152,9 @@ a, a:visited { .link--primary, .link--primary:visited { color: #4156C5; } - +.link--primary.fine-print { + text-align: center; +} .link--nav { color: black; border-bottom: 2px solid white; @@ -516,8 +518,12 @@ table { } #video-player { - background-color: black; - cursor: pointer; + background-color: #fff; + cursor: pointer; + margin: 0 auto; + margin-top: 2%; + border: 1px solid #d0d0d0; + padding:6px; } .show-asset-light { @@ -582,4 +588,4 @@ table { text-align: center; padding: 1em 0px 1em 0px; width: 100%; -} \ No newline at end of file +} diff --git a/routes/api-routes.js b/routes/api-routes.js index e8e28b71..4809f485 100644 --- a/routes/api-routes.js +++ b/routes/api-routes.js @@ -165,8 +165,7 @@ module.exports = (app) => { // route to get a short claim id from long claim Id app.get('/api/shortClaimId/:longId/:name', ({ originalUrl, ip, params }, res) => { // serve content - db.Claim - .getShortClaimIdFromLongClaimId(params.longId, params.name) + db.Claim.getShortClaimIdFromLongClaimId(params.longId, params.name) .then(shortId => { res.status(200).json(shortId); }) diff --git a/views/about.handlebars b/views/about.handlebars index db20bad9..b6453990 100644 --- a/views/about.handlebars +++ b/views/about.handlebars @@ -9,7 +9,7 @@
-

Spee.ch is a media-hosting site that reads and publishes content from the LBRY blockchain.

+

Spee.ch is a media-hosting site that reads from and publishes content to the LBRY blockchain.

Spee.ch is a hosting service, but with the added benefit that it stores your content on a decentralized network of computers -- the LBRY network. This means that your images are stored in multiple locations without a single point of failure.

Contribute

If you have an idea for your own spee.ch-like site on top of LBRY, fork our github repo and go to town!