mirror of
				https://github.com/dgtlmoon/changedetection.io.git
				synced 2025-11-04 08:34:57 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			0.45.7.3
			...
			visualsele
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					eb2560e77d | ||
| 
						 | 
					ab943c0c51 | ||
| 
						 | 
					9d99f4cb59 | 
							
								
								
									
										16
									
								
								.github/workflows/containers.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/containers.yml
									
									
									
									
										vendored
									
									
								
							@@ -96,9 +96,8 @@ jobs:
 | 
			
		||||
          tags: |
 | 
			
		||||
            ${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:dev,ghcr.io/${{ github.repository }}:dev
 | 
			
		||||
          platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7,linux/arm/v8
 | 
			
		||||
          cache-from: type=gha
 | 
			
		||||
          cache-to: type=gha,mode=max
 | 
			
		||||
 | 
			
		||||
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
			
		||||
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
			
		||||
# Looks like this was disabled
 | 
			
		||||
#          provenance: false
 | 
			
		||||
 | 
			
		||||
@@ -117,11 +116,18 @@ jobs:
 | 
			
		||||
            ${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:latest
 | 
			
		||||
            ghcr.io/dgtlmoon/changedetection.io:latest
 | 
			
		||||
          platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7,linux/arm/v8
 | 
			
		||||
          cache-from: type=gha
 | 
			
		||||
          cache-to: type=gha,mode=max
 | 
			
		||||
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
			
		||||
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
			
		||||
# Looks like this was disabled
 | 
			
		||||
#          provenance: false
 | 
			
		||||
 | 
			
		||||
      - name: Image digest
 | 
			
		||||
        run: echo step SHA ${{ steps.vars.outputs.sha_short }} tag ${{steps.vars.outputs.tag}} branch ${{steps.vars.outputs.branch}} digest ${{ steps.docker_build.outputs.digest }}
 | 
			
		||||
 | 
			
		||||
      - name: Cache Docker layers
 | 
			
		||||
        uses: actions/cache@v3
 | 
			
		||||
        with:
 | 
			
		||||
          path: /tmp/.buildx-cache
 | 
			
		||||
          key: ${{ runner.os }}-buildx-${{ github.sha }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-buildx-
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,11 @@ WORKDIR /install
 | 
			
		||||
 | 
			
		||||
COPY requirements.txt /requirements.txt
 | 
			
		||||
 | 
			
		||||
# Instructing pip to fetch wheels from piwheels.org" on ARMv6 and ARMv7 machines
 | 
			
		||||
RUN if [ "$(dpkg --print-architecture)" = "armhf" ] || [ "$(dpkg --print-architecture)" = "armel" ]; then \
 | 
			
		||||
      printf "[global]\nextra-index-url=https://www.piwheels.org/simple\n" > /etc/pip.conf; \
 | 
			
		||||
    fi;
 | 
			
		||||
 | 
			
		||||
RUN pip install --target=/dependencies -r /requirements.txt
 | 
			
		||||
 | 
			
		||||
# Playwright is an alternative to Selenium
 | 
			
		||||
 
 | 
			
		||||
@@ -16,4 +16,3 @@ global-exclude venv
 | 
			
		||||
 | 
			
		||||
global-exclude test-datastore
 | 
			
		||||
global-exclude changedetection.io*dist-info
 | 
			
		||||
global-exclude changedetectionio/tests/proxy_socks5/test-datastore
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ from flask_paginate import Pagination, get_page_parameter
 | 
			
		||||
from changedetectionio import html_tools
 | 
			
		||||
from changedetectionio.api import api_v1
 | 
			
		||||
 | 
			
		||||
__version__ = '0.45.7.3'
 | 
			
		||||
__version__ = '0.45.5'
 | 
			
		||||
 | 
			
		||||
from changedetectionio.store import BASE_URL_NOT_SET_TEXT
 | 
			
		||||
 | 
			
		||||
@@ -105,10 +105,6 @@ def get_darkmode_state():
 | 
			
		||||
    css_dark_mode = request.cookies.get('css_dark_mode', 'false')
 | 
			
		||||
    return 'true' if css_dark_mode and strtobool(css_dark_mode) else 'false'
 | 
			
		||||
 | 
			
		||||
@app.template_global()
 | 
			
		||||
def get_css_version():
 | 
			
		||||
    return __version__
 | 
			
		||||
 | 
			
		||||
# We use the whole watch object from the store/JSON so we can see if there's some related status in terms of a thread
 | 
			
		||||
# running or something similar.
 | 
			
		||||
@app.template_filter('format_last_checked_time')
 | 
			
		||||
 
 | 
			
		||||
@@ -3,50 +3,45 @@
 | 
			
		||||
 * Toggles theme between light and dark mode.
 | 
			
		||||
 */
 | 
			
		||||
$(document).ready(function () {
 | 
			
		||||
    const button = document.getElementById("toggle-light-mode");
 | 
			
		||||
  const button = document.getElementById("toggle-light-mode");
 | 
			
		||||
 | 
			
		||||
    button.onclick = () => {
 | 
			
		||||
        const htmlElement = document.getElementsByTagName("html");
 | 
			
		||||
        const isDarkMode = htmlElement[0].dataset.darkmode === "true";
 | 
			
		||||
        htmlElement[0].dataset.darkmode = !isDarkMode;
 | 
			
		||||
        setCookieValue(!isDarkMode);
 | 
			
		||||
    };
 | 
			
		||||
  button.onclick = () => {
 | 
			
		||||
    const htmlElement = document.getElementsByTagName("html");
 | 
			
		||||
    const isDarkMode = htmlElement[0].dataset.darkmode === "true";
 | 
			
		||||
    htmlElement[0].dataset.darkmode = !isDarkMode;
 | 
			
		||||
    setCookieValue(!isDarkMode);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    const setCookieValue = (value) => {
 | 
			
		||||
        document.cookie = `css_dark_mode=${value};max-age=31536000;path=/`
 | 
			
		||||
    }
 | 
			
		||||
  const setCookieValue = (value) => {
 | 
			
		||||
    document.cookie = `css_dark_mode=${value};max-age=31536000;path=/`
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    // Search input box behaviour
 | 
			
		||||
  // Search input box behaviour
 | 
			
		||||
    const toggle_search = document.getElementById("toggle-search");
 | 
			
		||||
    const search_q = document.getElementById("search-q");
 | 
			
		||||
    if(search_q) {
 | 
			
		||||
      window.addEventListener('keydown', function (e) {
 | 
			
		||||
        if (e.altKey == true && e.keyCode == 83) {
 | 
			
		||||
          search_q.classList.toggle('expanded');
 | 
			
		||||
          search_q.focus();
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
  const search_q = document.getElementById("search-q");
 | 
			
		||||
  window.addEventListener('keydown', function (e) {
 | 
			
		||||
 | 
			
		||||
      search_q.onkeydown = (e) => {
 | 
			
		||||
        var key = e.keyCode || e.which;
 | 
			
		||||
        if (key === 13) {
 | 
			
		||||
          document.searchForm.submit();
 | 
			
		||||
        }
 | 
			
		||||
      };
 | 
			
		||||
      toggle_search.onclick = () => {
 | 
			
		||||
        // Could be that they want to search something once text is in there
 | 
			
		||||
        if (search_q.value.length) {
 | 
			
		||||
          document.searchForm.submit();
 | 
			
		||||
        } else {
 | 
			
		||||
          // If not..
 | 
			
		||||
          search_q.classList.toggle('expanded');
 | 
			
		||||
          search_q.focus();
 | 
			
		||||
        }
 | 
			
		||||
      };
 | 
			
		||||
    if (e.altKey == true && e.keyCode == 83)
 | 
			
		||||
      search_q.classList.toggle('expanded');
 | 
			
		||||
      search_q.focus();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  search_q.onkeydown = (e) => {
 | 
			
		||||
    var key = e.keyCode || e.which;
 | 
			
		||||
    if (key === 13) {
 | 
			
		||||
      document.searchForm.submit();
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  toggle_search.onclick = () => {
 | 
			
		||||
    // Could be that they want to search something once text is in there
 | 
			
		||||
    if (search_q.value.length) {
 | 
			
		||||
      document.searchForm.submit();
 | 
			
		||||
    } else {
 | 
			
		||||
      // If not..
 | 
			
		||||
      search_q.classList.toggle('expanded');
 | 
			
		||||
      search_q.focus();
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    $('#heart-us').click(function () {
 | 
			
		||||
        $("#overlay").toggleClass('visible');
 | 
			
		||||
        heartpath.style.fill = document.getElementById("overlay").classList.contains("visible") ? '#ff0000' : 'var(--color-background)';
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
 | 
			
		||||
#toggle-light-mode {
 | 
			
		||||
/*  width: 3rem;*/
 | 
			
		||||
  width: 3rem;
 | 
			
		||||
  /* default */
 | 
			
		||||
  .icon-dark {
 | 
			
		||||
    display: none;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,38 +0,0 @@
 | 
			
		||||
#overlay {
 | 
			
		||||
 | 
			
		||||
  opacity: 0.95;
 | 
			
		||||
  position: fixed;
 | 
			
		||||
 | 
			
		||||
  width: 350px;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  right: -350px;
 | 
			
		||||
  background-color: var(--color-table-stripe);
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
 | 
			
		||||
  transform: translateX(0);
 | 
			
		||||
  transition: transform .5s ease;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  &.visible {
 | 
			
		||||
    transform: translateX(-100%);
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    font-size: 0.875rem;
 | 
			
		||||
    padding: 1rem;
 | 
			
		||||
    margin-top: 5rem;
 | 
			
		||||
    max-width: 400px;
 | 
			
		||||
    color: var(--color-watch-table-row-text);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#heartpath {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    fill: #ff0000 !important;
 | 
			
		||||
    transition: all ease 0.3s !important;
 | 
			
		||||
  }
 | 
			
		||||
  transition: all ease 0.3s !important;
 | 
			
		||||
}
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
.pure-menu-link {
 | 
			
		||||
  padding: 0.5rem 1em;
 | 
			
		||||
  line-height: 1.2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pure-menu-item {
 | 
			
		||||
  svg {
 | 
			
		||||
    height: 1.2rem;
 | 
			
		||||
  }
 | 
			
		||||
  * {
 | 
			
		||||
    vertical-align: middle;
 | 
			
		||||
  }
 | 
			
		||||
  .github-link {
 | 
			
		||||
    height: 1.8rem;
 | 
			
		||||
    display: block;
 | 
			
		||||
    svg {
 | 
			
		||||
      height: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .bi-heart {
 | 
			
		||||
    &:hover {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -9,13 +9,10 @@
 | 
			
		||||
@import "parts/_spinners";
 | 
			
		||||
@import "parts/_variables";
 | 
			
		||||
@import "parts/_darkmode";
 | 
			
		||||
@import "parts/_menu";
 | 
			
		||||
@import "parts/_love";
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
  color: var(--color-text);
 | 
			
		||||
  background: var(--color-background-page);
 | 
			
		||||
  font-family: Helvetica Neue, Helvetica, Lucida Grande, Arial, Ubuntu, Cantarell, Fira Sans, sans-serif;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.visually-hidden {
 | 
			
		||||
@@ -58,6 +55,11 @@ a.github-link {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#toggle-search {
 | 
			
		||||
  width: 2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#search-q {
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  -webkit-transition: all .9s ease;
 | 
			
		||||
@@ -1080,4 +1082,3 @@ ul {
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -331,7 +331,7 @@ html[data-darkmode="true"] {
 | 
			
		||||
      color: var(--color-watch-table-error); }
 | 
			
		||||
 | 
			
		||||
#toggle-light-mode {
 | 
			
		||||
  /*  width: 3rem;*/
 | 
			
		||||
  width: 3rem;
 | 
			
		||||
  /* default */ }
 | 
			
		||||
  #toggle-light-mode .icon-dark {
 | 
			
		||||
    display: none; }
 | 
			
		||||
@@ -342,56 +342,9 @@ html[data-darkmode="true"] #toggle-light-mode .icon-light {
 | 
			
		||||
html[data-darkmode="true"] #toggle-light-mode .icon-dark {
 | 
			
		||||
  display: block; }
 | 
			
		||||
 | 
			
		||||
.pure-menu-link {
 | 
			
		||||
  padding: 0.5rem 1em;
 | 
			
		||||
  line-height: 1.2rem; }
 | 
			
		||||
 | 
			
		||||
.pure-menu-item svg {
 | 
			
		||||
  height: 1.2rem; }
 | 
			
		||||
 | 
			
		||||
.pure-menu-item * {
 | 
			
		||||
  vertical-align: middle; }
 | 
			
		||||
 | 
			
		||||
.pure-menu-item .github-link {
 | 
			
		||||
  height: 1.8rem;
 | 
			
		||||
  display: block; }
 | 
			
		||||
  .pure-menu-item .github-link svg {
 | 
			
		||||
    height: 100%; }
 | 
			
		||||
 | 
			
		||||
.pure-menu-item .bi-heart:hover {
 | 
			
		||||
  cursor: pointer; }
 | 
			
		||||
 | 
			
		||||
#overlay {
 | 
			
		||||
  opacity: 0.95;
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  width: 350px;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  right: -350px;
 | 
			
		||||
  background-color: var(--color-table-stripe);
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
  transform: translateX(0);
 | 
			
		||||
  transition: transform .5s ease; }
 | 
			
		||||
  #overlay.visible {
 | 
			
		||||
    transform: translateX(-100%); }
 | 
			
		||||
  #overlay .content {
 | 
			
		||||
    font-size: 0.875rem;
 | 
			
		||||
    padding: 1rem;
 | 
			
		||||
    margin-top: 5rem;
 | 
			
		||||
    max-width: 400px;
 | 
			
		||||
    color: var(--color-watch-table-row-text); }
 | 
			
		||||
 | 
			
		||||
#heartpath {
 | 
			
		||||
  transition: all ease 0.3s !important; }
 | 
			
		||||
  #heartpath:hover {
 | 
			
		||||
    fill: #ff0000 !important;
 | 
			
		||||
    transition: all ease 0.3s !important; }
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
  color: var(--color-text);
 | 
			
		||||
  background: var(--color-background-page);
 | 
			
		||||
  font-family: Helvetica Neue, Helvetica, Lucida Grande, Arial, Ubuntu, Cantarell, Fira Sans, sans-serif; }
 | 
			
		||||
  background: var(--color-background-page); }
 | 
			
		||||
 | 
			
		||||
.visually-hidden {
 | 
			
		||||
  clip: rect(0 0 0 0);
 | 
			
		||||
@@ -423,6 +376,9 @@ a.github-link {
 | 
			
		||||
  a.github-link:hover {
 | 
			
		||||
    color: var(--color-icon-github-hover); }
 | 
			
		||||
 | 
			
		||||
#toggle-search {
 | 
			
		||||
  width: 2rem; }
 | 
			
		||||
 | 
			
		||||
#search-q {
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  -webkit-transition: all .9s ease;
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@
 | 
			
		||||
    <title>Change Detection{{extra_title}}</title>
 | 
			
		||||
    <link rel="alternate" type="application/rss+xml" title="Changedetection.io » Feed{% if active_tag %}- {{active_tag}}{% endif %}" href="{{ url_for('rss', tag=active_tag , token=app_rss_token)}}" >
 | 
			
		||||
    <link rel="stylesheet" href="{{url_for('static_content', group='styles', filename='pure-min.css')}}" >
 | 
			
		||||
    <link rel="stylesheet" href="{{url_for('static_content', group='styles', filename='styles.css')}}?v={{ get_css_version() }}" >
 | 
			
		||||
    <link rel="stylesheet" href="{{url_for('static_content', group='styles', filename='styles.css')}}" >
 | 
			
		||||
    {% if extra_stylesheets %}
 | 
			
		||||
      {% for m in extra_stylesheets %}
 | 
			
		||||
        <link rel="stylesheet" href="{{ m }}?ver={{ get_css_version() }}" >
 | 
			
		||||
        <link rel="stylesheet" href="{{ m }}?ver=1000" >
 | 
			
		||||
      {% endfor %}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
 | 
			
		||||
@@ -108,20 +108,6 @@
 | 
			
		||||
              </span>
 | 
			
		||||
            </button>
 | 
			
		||||
          </li>
 | 
			
		||||
          <li class="pure-menu-item" id="heart-us">
 | 
			
		||||
                <svg
 | 
			
		||||
                   fill="#ff0000"
 | 
			
		||||
                   class="bi bi-heart"
 | 
			
		||||
                   preserveAspectRatio="xMidYMid meet"
 | 
			
		||||
                   viewBox="0 0 16.9 16.1"
 | 
			
		||||
                   id="svg-heart"
 | 
			
		||||
                   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                   xmlns:svg="http://www.w3.org/2000/svg">
 | 
			
		||||
                  <path id="heartpath" d="M 5.338316,0.50302766 C 0.71136983,0.50647126 -3.9576371,7.2707777 8.5004254,15.503028 23.833425,5.3700277 13.220206,-2.5384409 8.6762066,1.6475589 c -0.060791,0.054322 -0.11943,0.1110064 -0.1757812,0.1699219 -0.057,-0.059 -0.1157813,-0.116875 -0.1757812,-0.171875 C 7.4724566,0.86129334 6.4060729,0.50223298 5.338316,0.50302766 Z"
 | 
			
		||||
                     style="fill:var(--color-background);fill-opacity:1;stroke:#ff0000;stroke-opacity:1" />
 | 
			
		||||
                </svg>
 | 
			
		||||
 | 
			
		||||
          </li>
 | 
			
		||||
          <li class="pure-menu-item">
 | 
			
		||||
            <a class="github-link" href="https://github.com/dgtlmoon/changedetection.io">
 | 
			
		||||
              {% include "svgs/github.svg" %}
 | 
			
		||||
@@ -145,44 +131,7 @@
 | 
			
		||||
      <div class="sticky-tab" id="right-sticky">{{ right_sticky }}</div>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    <section class="content">
 | 
			
		||||
        <div id="overlay">
 | 
			
		||||
            <div class="content">
 | 
			
		||||
                <strong>changedetection.io needs your support!</strong><br>
 | 
			
		||||
                <p>
 | 
			
		||||
                    You can help us by supporting changedetection.io on these platforms;
 | 
			
		||||
                </p>
 | 
			
		||||
                <p>
 | 
			
		||||
                <ul>
 | 
			
		||||
                    <li>
 | 
			
		||||
                        <a href="https://alternativeto.net/software/changedetection-io/about/">Rate us at
 | 
			
		||||
                        AlternativeTo.net</a>
 | 
			
		||||
                    </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    <a href="https://github.com/dgtlmoon/changedetection.io">Star us on GitHub</a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    <a href="https://twitter.com/change_det_io">Follow us at Twitter/X</a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    <a href="https://www.linkedin.com/company/changedetection-io">Check us out on LinkedIn</a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    And tell your friends and colleagues :)
 | 
			
		||||
                </li>
 | 
			
		||||
                </ul>
 | 
			
		||||
                </p>
 | 
			
		||||
                <p>
 | 
			
		||||
                    The more popular changedetection.io is, the more time we can dedicate to adding amazing features!
 | 
			
		||||
                </p>
 | 
			
		||||
                <p>
 | 
			
		||||
                    Many thanks :)<br>
 | 
			
		||||
                </p>
 | 
			
		||||
                <p>
 | 
			
		||||
                    <i>changedetection.io team</i>
 | 
			
		||||
                </p>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <header>
 | 
			
		||||
      <header>
 | 
			
		||||
        {% block header %}{% endblock %}
 | 
			
		||||
      </header>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,3 @@
 | 
			
		||||
<svg class="octicon octicon-mark-github v-align-middle"  viewbox="0 0 16 16" version="1.1" aria-hidden="true">
 | 
			
		||||
    <path
 | 
			
		||||
     fill-rule="evenodd"
 | 
			
		||||
     d="M 8,0 C 3.58,0 0,3.58 0,8 c 0,3.54 2.29,6.53 5.47,7.59 0.4,0.07 0.55,-0.17 0.55,-0.38 0,-0.19 -0.01,-0.82 -0.01,-1.49 C 4,14.09 3.48,13.23 3.32,12.78 3.23,12.55 2.84,11.84 2.5,11.65 2.22,11.5 1.82,11.13 2.49,11.12 3.12,11.11 3.57,11.7 3.72,11.94 4.44,13.15 5.59,12.81 6.05,12.6 6.12,12.08 6.33,11.73 6.56,11.53 4.78,11.33 2.92,10.64 2.92,7.58 2.92,6.71 3.23,5.99 3.74,5.43 3.66,5.23 3.38,4.41 3.82,3.31 c 0,0 0.67,-0.21 2.2,0.82 0.64,-0.18 1.32,-0.27 2,-0.27 0.68,0 1.36,0.09 2,0.27 1.53,-1.04 2.2,-0.82 2.2,-0.82 0.44,1.1 0.16,1.92 0.08,2.12 0.51,0.56 0.82,1.27 0.82,2.15 0,3.07 -1.87,3.75 -3.65,3.95 0.29,0.25 0.54,0.73 0.54,1.48 0,1.07 -0.01,1.93 -0.01,2.2 0,0.21 0.15,0.46 0.55,0.38 A 8.013,8.013 0 0 0 16,8 C 16,3.58 12.42,0 8,0 Z"
 | 
			
		||||
     id="path2" />
 | 
			
		||||
<svg class="octicon octicon-mark-github v-align-middle" height="32" viewbox="0 0 16 16" version="1.1" width="32" aria-hidden="true">
 | 
			
		||||
  <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
 | 
			
		||||
</svg>
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 917 B After Width: | Height: | Size: 749 B  | 
@@ -1,12 +1,11 @@
 | 
			
		||||
eventlet>=0.33.3 # related to dnspython fixes
 | 
			
		||||
eventlet>=0.31.0
 | 
			
		||||
feedgen~=0.9
 | 
			
		||||
flask-compress
 | 
			
		||||
# 0.6.3 included compatibility fix for werkzeug 3.x (2.x had deprecation of url handlers)
 | 
			
		||||
flask-login>=0.6.3
 | 
			
		||||
flask-login~=0.6
 | 
			
		||||
flask-paginate
 | 
			
		||||
flask_expects_json~=1.7
 | 
			
		||||
flask_restful
 | 
			
		||||
flask_wtf~=1.2
 | 
			
		||||
flask_wtf
 | 
			
		||||
flask~=2.3
 | 
			
		||||
inscriptis~=2.2
 | 
			
		||||
pytz
 | 
			
		||||
@@ -25,7 +24,11 @@ chardet>2.3.0
 | 
			
		||||
wtforms~=3.0
 | 
			
		||||
jsonpath-ng~=1.5.3
 | 
			
		||||
 | 
			
		||||
dnspython~=2.4 # related to eventlet fixes
 | 
			
		||||
 | 
			
		||||
# dnspython 2.3.0 is not compatible with eventlet
 | 
			
		||||
# * https://github.com/eventlet/eventlet/issues/781
 | 
			
		||||
# * https://datastax-oss.atlassian.net/browse/PYTHON-1320
 | 
			
		||||
dnspython<2.3.0
 | 
			
		||||
 | 
			
		||||
# jq not available on Windows so must be installed manually
 | 
			
		||||
 | 
			
		||||
@@ -48,7 +51,7 @@ lxml
 | 
			
		||||
 | 
			
		||||
selenium~=4.14.0
 | 
			
		||||
 | 
			
		||||
werkzeug~=3.0
 | 
			
		||||
werkzeug
 | 
			
		||||
 | 
			
		||||
# Templating, so far just in the URLs but in the future can be for the notifications also
 | 
			
		||||
jinja2~=3.1
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user