from notifications.listeners import default_notification
from error.signals import error_created

error_created.disconnect(default_notification,
                         dispatch_uid="default_notification")
from app.utils import safe_string, log

try:
    from hashlib import md5
except ImportError:
    from md5 import md5

from django.db.models import F

from error import signals
from error.signals import error_created
from error.listeners import default_grouping
from error.models import Error, Group

error_created.disconnect(default_grouping, dispatch_uid="default_grouping")


def generate_key(instance):
    keys = ["type", "msg", "status", "domain"]
    hsh = None

    for key in keys:
        value = safe_string(getattr(instance, key))
        if value:
            if not hsh:
                hsh = md5()
            hsh.update(value.encode("ascii", "ignore"))

    return hsh

from error.listeners import default_browser_parsing
from error.signals import error_created

error_created.disconnect(default_browser_parsing,
                         dispatch_uid="default_browser_parsing")