Commit d6478a60 authored by zixaphir's avatar zixaphir
Browse files

Remove extra network separator without regex

parent 78c1a746
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -140,23 +140,19 @@ function setupExtraNetworks() {

onUiLoaded(setupExtraNetworks);

var re_extranet = /<([^:]+:[^:]+):[\d.]+>(.*)/;
var re_extranet_str = '<([^:]+:[^:]+):[\\d.]+>';
var re_extranet =   /<([^:^>]+:[^:]+):[\d.]+>(.*)/;
var re_extranet_g = /<([^:^>]+:[^:]+):[\d.]+>/g;

function tryToRemoveExtraNetworkFromPrompt(textarea, text) {
    function reEscape(s) {
        return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
    }
    var m = text.match(re_extranet);
    var replaced = false;
    var newTextareaText;
    if (m) {
        var extraTextBeforeNet = opts.extra_networks_add_text_separator;
        var extraTextAfterNet = m[2];
        var partToSearch = m[1];
        var foundAtPosition = -1;
        var escapedSeparator = `(?:${reEscape(opts.extra_networks_add_text_separator)})?`;
        var re = new RegExp(escapedSeparator + re_extranet_str, 'g');
        newTextareaText = textarea.value.replaceAll(re, function(found, net, pos) {
        newTextareaText = textarea.value.replaceAll(re_extranet_g, function(found, net, pos) {
            m = found.match(re_extranet);
            if (m[1] == partToSearch) {
                replaced = true;
@@ -166,9 +162,14 @@ function tryToRemoveExtraNetworkFromPrompt(textarea, text) {
            return found;
        });

        if (foundAtPosition >= 0 && newTextareaText.substr(foundAtPosition, extraTextAfterNet.length) == extraTextAfterNet) {
        if (foundAtPosition >= 0) {
            if (newTextareaText.substr(foundAtPosition, extraTextAfterNet.length) == extraTextAfterNet) {
                newTextareaText = newTextareaText.substr(0, foundAtPosition) + newTextareaText.substr(foundAtPosition + extraTextAfterNet.length);
            }
            if (newTextareaText.substr(foundAtPosition - extraTextBeforeNet.length, extraTextBeforeNet.length) == extraTextBeforeNet) {
                newTextareaText = newTextareaText.substr(0, foundAtPosition - extraTextBeforeNet.length) + newTextareaText.substr(foundAtPosition);
            }
        }
    } else {
        newTextareaText = textarea.value.replaceAll(new RegExp(text, "g"), function(found) {
            if (found == text) {