Merge branch 'master' into upload-refactor
This commit is contained in:
commit
7997d2ee84
7 changed files with 43 additions and 58 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
||||||
node_modules
|
node_modules
|
||||||
.idea
|
.idea
|
||||||
config/config.json
|
config/config.json
|
||||||
|
config/sequelizeCliConfig.js
|
||||||
config/speechConfig.js
|
config/speechConfig.js
|
25
helpers/sequelizeHelpers.js
Normal file
25
helpers/sequelizeHelpers.js
Normal file
|
@ -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;
|
||||||
|
},
|
||||||
|
};
|
|
@ -1,31 +1,8 @@
|
||||||
const logger = require('winston');
|
const logger = require('winston');
|
||||||
|
const { returnShortId } = require('../helpers/sequelizeHelpers.js');
|
||||||
const NO_CHANNEL = 'NO_CHANNEL';
|
const NO_CHANNEL = 'NO_CHANNEL';
|
||||||
|
|
||||||
function sortResult (result, longId) {
|
module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT }) => {
|
||||||
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, ARRAY, DECIMAL, DOUBLE, Op }) => {
|
|
||||||
const Certificate = sequelize.define(
|
const Certificate = sequelize.define(
|
||||||
'Certificate',
|
'Certificate',
|
||||||
{
|
{
|
||||||
|
@ -137,7 +114,7 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, ARRAY, DECIMAL, D
|
||||||
case 0:
|
case 0:
|
||||||
throw new Error('That is an invalid channel name');
|
throw new Error('That is an invalid channel name');
|
||||||
default:
|
default:
|
||||||
return resolve(sortResult(result, longChannelId));
|
return resolve(returnShortId(result, longChannelId));
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|
|
@ -1,30 +1,7 @@
|
||||||
const logger = require('winston');
|
const logger = require('winston');
|
||||||
|
const { returnShortId } = require('../helpers/sequelizeHelpers.js');
|
||||||
const NO_CLAIM = 'NO_CLAIM';
|
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, ARRAY, DECIMAL, DOUBLE, Op }) => {
|
module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, ARRAY, DECIMAL, DOUBLE, Op }) => {
|
||||||
const Claim = sequelize.define(
|
const Claim = sequelize.define(
|
||||||
'Claim',
|
'Claim',
|
||||||
|
@ -194,7 +171,7 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, ARRAY, DECIMAL, D
|
||||||
case 0:
|
case 0:
|
||||||
throw new Error('That is an invalid claim name');
|
throw new Error('That is an invalid claim name');
|
||||||
default:
|
default:
|
||||||
resolve(sortResult(result, claimId));
|
resolve(returnShortId(result, claimId));
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|
|
@ -152,7 +152,9 @@ a, a:visited {
|
||||||
.link--primary, .link--primary:visited {
|
.link--primary, .link--primary:visited {
|
||||||
color: #4156C5;
|
color: #4156C5;
|
||||||
}
|
}
|
||||||
|
.link--primary.fine-print {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.link--nav {
|
.link--nav {
|
||||||
color: black;
|
color: black;
|
||||||
border-bottom: 2px solid white;
|
border-bottom: 2px solid white;
|
||||||
|
@ -516,8 +518,12 @@ table {
|
||||||
}
|
}
|
||||||
|
|
||||||
#video-player {
|
#video-player {
|
||||||
background-color: black;
|
background-color: #fff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 2%;
|
||||||
|
border: 1px solid #d0d0d0;
|
||||||
|
padding:6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.show-asset-light {
|
.show-asset-light {
|
||||||
|
|
|
@ -164,8 +164,7 @@ module.exports = (app) => {
|
||||||
// route to get a short claim id from long claim Id
|
// route to get a short claim id from long claim Id
|
||||||
app.get('/api/shortClaimId/:longId/:name', ({ originalUrl, ip, params }, res) => {
|
app.get('/api/shortClaimId/:longId/:name', ({ originalUrl, ip, params }, res) => {
|
||||||
// serve content
|
// serve content
|
||||||
db.Claim
|
db.Claim.getShortClaimIdFromLongClaimId(params.longId, params.name)
|
||||||
.getShortClaimIdFromLongClaimId(params.longId, params.name)
|
|
||||||
.then(shortId => {
|
.then(shortId => {
|
||||||
res.status(200).json(shortId);
|
res.status(200).json(shortId);
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div><div class="column column--5 column--med-10 align-content-top">
|
</div><div class="column column--5 column--med-10 align-content-top">
|
||||||
<div class="column column--8 column--med-10">
|
<div class="column column--8 column--med-10">
|
||||||
<p>Spee.ch is a media-hosting site that reads and publishes content from the <a class="link--primary" href="https://lbry.io">LBRY</a> blockchain.</p>
|
<p>Spee.ch is a media-hosting site that reads from and publishes content to the <a class="link--primary" href="https://lbry.io">LBRY</a> blockchain.</p>
|
||||||
<p>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.</p>
|
<p>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.</p>
|
||||||
<h3>Contribute</h3>
|
<h3>Contribute</h3>
|
||||||
<p>If you have an idea for your own spee.ch-like site on top of LBRY, fork our <a class="link--primary" href="https://github.com/lbryio/spee.ch">github repo</a> and go to town!</p>
|
<p>If you have an idea for your own spee.ch-like site on top of LBRY, fork our <a class="link--primary" href="https://github.com/lbryio/spee.ch">github repo</a> and go to town!</p>
|
||||||
|
|
Loading…
Reference in a new issue