Code scanning alerts #430

This commit is contained in:
Daniel Grams 2023-04-13 23:42:16 +02:00
parent c8e967f544
commit d173ed5381
6 changed files with 92 additions and 74 deletions

View File

@ -67,7 +67,6 @@ class EventImporter:
def _sanitize_url(self, absolute_url: str) -> str:
result = absolute_url
if "reservix.de" in absolute_url or "facebook.com" in absolute_url:
try:
p = urlparse(absolute_url)

View File

@ -1,4 +1,5 @@
import json
from urllib.parse import urlparse
import validators
from bs4 import BeautifulSoup
@ -178,7 +179,10 @@ class LdJsonImporter:
return organizer
def _load_organizer_from_html(self) -> EventOrganizer:
if "reservix.de" in self.origin_url:
try:
p = urlparse(self.origin_url)
if p.hostname.endswith("reservix.de"):
div = self.soup.find("div", attrs={"class": "c-organizer-info"})
if div:
@ -192,7 +196,7 @@ class LdJsonImporter:
if organizer:
return organizer
if "eventim.de" in self.origin_url:
if p.hostname.endswith("eventim.de"):
div = self.soup.find(
"div", attrs={"data-qa": "additional-info-promoter-content"}
)
@ -212,7 +216,7 @@ class LdJsonImporter:
if organizer:
return organizer
if "regiondo.de" in self.origin_url:
if p.hostname.endswith("regiondo.de"):
span = self.soup.find(
"span", attrs={"itemtype": "http://schema.org/Organization"}
)
@ -224,7 +228,7 @@ class LdJsonImporter:
if organizer:
return organizer
if "facebook.com" in self.origin_url:
if p.hostname.endswith("facebook.com"):
anchor = self.soup.find("a", attrs={"class": "cc"})
if anchor:
@ -233,6 +237,8 @@ class LdJsonImporter:
if organizer:
return organizer
except Exception: # pragma: no cover
pass
return None

View File

@ -12,8 +12,8 @@ function get_moment_with_time_from_fields(date_field, time_field) {
}
function get_moment_with_time(field_id) {
var date_field = $.find(field_id);
var time_field = $.find(field_id + "-time");
var date_field = $(this).find(field_id);
var time_field = $(this).find(field_id + "-time");
return get_moment_with_time_from_fields(date_field, time_field)
}
@ -24,28 +24,28 @@ function set_date_bounds(picker) {
if (data_range_to_attr) {
var hidden_field_id = picker.attr("id").replace("-user", "");
var from_moment = get_moment_with_time("#" + hidden_field_id);
$.find(data_range_to_attr + "-user").datepicker(
$(this).find(data_range_to_attr + "-user").datepicker(
"option",
"minDate",
from_moment.toDate()
);
var end_val = $.find(data_range_to_attr).val();
var end_val = $(this).find(data_range_to_attr).val();
if (end_val != "") {
var end_moment = get_moment_with_time(data_range_to_attr);
if (data_allday_attr && $.find(data_allday_attr).is(':checked')) {
if (data_allday_attr && $(this).find(data_allday_attr).is(':checked')) {
end_moment = end_moment.endOf('day');
set_picker_date($.find(data_range_to_attr), end_moment.toDate());
set_picker_date($(this).find(data_range_to_attr), end_moment.toDate());
} else if (end_moment < from_moment) {
set_picker_date($.find(data_range_to_attr), from_moment.toDate());
set_picker_date($(this).find(data_range_to_attr), from_moment.toDate());
}
}
var data_range_max_attr = picker.attr("data-range-max-days");
if (data_range_max_attr) {
from_moment.add(data_range_max_attr, "days");
$.find(data_range_to_attr + "-user").datepicker(
$(this).find(data_range_to_attr + "-user").datepicker(
"option",
"maxDate",
from_moment.toDate()
@ -58,11 +58,11 @@ function set_date_bounds(picker) {
var hidden_field_id = picker.attr("id").replace("-user", "");
var to_moment = get_moment_with_time("#" + hidden_field_id);
var start_val = $.find(data_range_from_attr).val();
var start_val = $(this).find(data_range_from_attr).val();
if (start_val != "") {
var start_moment = get_moment_with_time(data_range_from_attr);
if (start_moment > to_moment) {
set_picker_date($.find(data_range_from_attr), to_moment.toDate());
set_picker_date($(this).find(data_range_from_attr), to_moment.toDate());
}
}
}
@ -98,7 +98,7 @@ function onAlldayChecked(checkbox, hidden_field_id) {
if (data_range_to_attr) {
var end_moment = get_moment_with_time(data_range_to_attr);
end_moment = end_moment.startOf('day').set({"hour": next_hour.hour(), "minute": next_hour.minute()});
set_picker_date($.find(data_range_to_attr), end_moment.add(3, 'hours').toDate());
set_picker_date($(this).find(data_range_to_attr), end_moment.add(3, 'hours').toDate());
}
}
}
@ -142,18 +142,18 @@ function start_datepicker(input) {
var data_range_to_attr = picker.attr("data-range-to");
if (data_range_to_attr) {
$.find(data_range_to_attr).attr("data-range-from", "#" + hidden_field_id);
$(this).find(data_range_to_attr).attr("data-range-from", "#" + hidden_field_id);
}
var data_allday_attr = picker.attr("data-allday");
if (data_allday_attr) {
var checked = $.find(data_allday_attr).is(':checked')
var checked = $(this).find(data_allday_attr).is(':checked')
$("#" + hidden_field_id + "-time").toggle(!checked);
if (data_range_to_attr) {
$.find(data_range_to_attr + "-time").toggle(!checked);
$(this).find(data_range_to_attr + "-time").toggle(!checked);
}
$.find(data_allday_attr).on('change', function() {
$(this).find(data_allday_attr).on('change', function() {
$("#" + hidden_field_id + "-time").toggle(!this.checked);
if (data_range_to_attr) {
$(data_range_to_attr + "-time").toggle(!this.checked);

View File

@ -134,7 +134,11 @@ def admin_email():
"value": result.get() if ready else result.result,
}
except Exception as e:
return {"ready": True, "successful": False, "error": str(e)}
return {
"ready": True,
"successful": False,
"error": getattr(e, "message", "Unknown error"),
}
if form.validate_on_submit():
subject = gettext(
@ -173,7 +177,11 @@ def admin_newsletter():
"successful": result.successful() if ready else None,
}
except Exception as e:
return {"ready": True, "successful": False, "error": str(e)}
return {
"ready": True,
"successful": False,
"error": getattr(e, "message", "Unknown error"),
}
if form.validate_on_submit():
subject = gettext(

View File

@ -282,7 +282,7 @@ def event_rrule():
return jsonify(result)
except Exception as e:
app.logger.exception(request.json)
return str(e), 400
return getattr(e, "message", "Unknown error"), 400
def get_event_category_choices():

View File

@ -28,7 +28,12 @@ def image(id, hash=None):
# Generate file name
extension = image.get_file_extension()
hash = image.get_hash()
file_path = os.path.join(img_path, f"{id}-{hash}-{width}-{height}.{extension}")
file_path = os.path.normpath(
os.path.join(img_path, f"{id}-{hash}-{width}-{height}.{extension}")
)
if not file_path.startswith(img_path):
return None, 404
# Load from disk if exists
if os.path.exists(file_path):