Fix URL bugs (#11)

* Handle no-url-in-file case
* Handle null case
* Fix split (use lookbehind)
* Get user from path
This commit is contained in:
Erayd
2018-04-22 01:48:14 +12:00
committed by GitHub
parent af96b0309c
commit 9727bea183

View File

@@ -209,7 +209,10 @@ async function handleMessage(settings, message, sendResponse) {
case "launch": case "launch":
try { try {
var tab = (await chrome.tabs.query({ active: true, currentWindow: true }))[0]; var tab = (await chrome.tabs.query({ active: true, currentWindow: true }))[0];
var url = message.login.fields.url ? message.login.fields.url : response.login.url; var url = message.login.fields.url || message.login.domain;
if (!url) {
throw new Error("No URL is defined for this entry");
}
if (!url.match(/:\/\//)) { if (!url.match(/:\/\//)) {
url = "http://" + url; url = "http://" + url;
} }
@@ -321,7 +324,7 @@ async function parseFields(settings, login) {
lines.forEach(function(line) { lines.forEach(function(line) {
// split key / value // split key / value
var parts = line var parts = line
.split(":", 2) .split(/(?<=^[^:]+):/)
.map(value => value.trim()) .map(value => value.trim())
.filter(value => value.length); .filter(value => value.length);
if (parts.length != 2) { if (parts.length != 2) {
@@ -342,6 +345,8 @@ async function parseFields(settings, login) {
if (Array.isArray(login.fields[key])) { if (Array.isArray(login.fields[key])) {
if (key == "secret" && lines.length) { if (key == "secret" && lines.length) {
login.fields.secret = lines[0]; login.fields.secret = lines[0];
} else if (key == "login") {
login.fields[key] = login.login.match(/([^\/]+)$/)[1];
} else { } else {
login.fields[key] = null; login.fields[key] = null;
} }