__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.216.200: ~ $
import uuid
from datetime import datetime, timezone
from typing import TYPE_CHECKING

from sentry_sdk.utils import format_timestamp

if TYPE_CHECKING:
    from typing import Any, Dict, Optional, Union

    from sentry_sdk._types import SessionStatus


def _minute_trunc(ts: "datetime") -> "datetime":
    return ts.replace(second=0, microsecond=0)


def _make_uuid(
    val: "Union[str, uuid.UUID]",
) -> "uuid.UUID":
    if isinstance(val, uuid.UUID):
        return val
    return uuid.UUID(val)


class Session:
    def __init__(
        self,
        sid: "Optional[Union[str, uuid.UUID]]" = None,
        did: "Optional[str]" = None,
        timestamp: "Optional[datetime]" = None,
        started: "Optional[datetime]" = None,
        duration: "Optional[float]" = None,
        status: "Optional[SessionStatus]" = None,
        release: "Optional[str]" = None,
        environment: "Optional[str]" = None,
        user_agent: "Optional[str]" = None,
        ip_address: "Optional[str]" = None,
        errors: "Optional[int]" = None,
        user: "Optional[Any]" = None,
        session_mode: str = "application",
    ) -> None:
        if sid is None:
            sid = uuid.uuid4()
        if started is None:
            started = datetime.now(timezone.utc)
        if status is None:
            status = "ok"
        self.status = status
        self.did: "Optional[str]" = None
        self.started = started
        self.release: "Optional[str]" = None
        self.environment: "Optional[str]" = None
        self.duration: "Optional[float]" = None
        self.user_agent: "Optional[str]" = None
        self.ip_address: "Optional[str]" = None
        self.session_mode: str = session_mode
        self.errors = 0

        self.update(
            sid=sid,
            did=did,
            timestamp=timestamp,
            duration=duration,
            release=release,
            environment=environment,
            user_agent=user_agent,
            ip_address=ip_address,
            errors=errors,
            user=user,
        )

    @property
    def truncated_started(self) -> "datetime":
        return _minute_trunc(self.started)

    def update(
        self,
        sid: "Optional[Union[str, uuid.UUID]]" = None,
        did: "Optional[str]" = None,
        timestamp: "Optional[datetime]" = None,
        started: "Optional[datetime]" = None,
        duration: "Optional[float]" = None,
        status: "Optional[SessionStatus]" = None,
        release: "Optional[str]" = None,
        environment: "Optional[str]" = None,
        user_agent: "Optional[str]" = None,
        ip_address: "Optional[str]" = None,
        errors: "Optional[int]" = None,
        user: "Optional[Any]" = None,
    ) -> None:
        # If a user is supplied we pull some data form it
        if user:
            if ip_address is None:
                ip_address = user.get("ip_address")
            if did is None:
                did = user.get("id") or user.get("email") or user.get("username")

        if sid is not None:
            self.sid = _make_uuid(sid)
        if did is not None:
            self.did = str(did)
        if timestamp is None:
            timestamp = datetime.now(timezone.utc)
        self.timestamp = timestamp
        if started is not None:
            self.started = started
        if duration is not None:
            self.duration = duration
        if release is not None:
            self.release = release
        if environment is not None:
            self.environment = environment
        if ip_address is not None:
            self.ip_address = ip_address
        if user_agent is not None:
            self.user_agent = user_agent
        if errors is not None:
            self.errors = errors

        if status is not None:
            self.status = status

    def close(
        self,
        status: "Optional[SessionStatus]" = None,
    ) -> "Any":
        if status is None and self.status == "ok":
            status = "exited"
        if status is not None:
            self.update(status=status)

    def get_json_attrs(
        self,
        with_user_info: "Optional[bool]" = True,
    ) -> "Any":
        attrs = {}
        if self.release is not None:
            attrs["release"] = self.release
        if self.environment is not None:
            attrs["environment"] = self.environment
        if with_user_info:
            if self.ip_address is not None:
                attrs["ip_address"] = self.ip_address
            if self.user_agent is not None:
                attrs["user_agent"] = self.user_agent
        return attrs

    def to_json(self) -> "Any":
        rv: "Dict[str, Any]" = {
            "sid": str(self.sid),
            "init": True,
            "started": format_timestamp(self.started),
            "timestamp": format_timestamp(self.timestamp),
            "status": self.status,
        }
        if self.errors:
            rv["errors"] = self.errors
        if self.did is not None:
            rv["did"] = self.did
        if self.duration is not None:
            rv["duration"] = self.duration
        attrs = self.get_json_attrs()
        if attrs:
            rv["attrs"] = attrs
        return rv

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
ai Folder 0755
crons Folder 0755
integrations Folder 0755
profiler Folder 0755
__init__.py File 1.46 KB 0644
_batcher.py File 5.7 KB 0644
_compat.py File 3 KB 0644
_init_implementation.py File 2.43 KB 0644
_log_batcher.py File 1.88 KB 0644
_lru_cache.py File 1.14 KB 0644
_metrics_batcher.py File 1.21 KB 0644
_queue.py File 10.98 KB 0644
_span_batcher.py File 8.12 KB 0644
_types.py File 13.16 KB 0644
_werkzeug.py File 3.85 KB 0644
api.py File 15.59 KB 0644
attachments.py File 2.95 KB 0644
client.py File 49.95 KB 0644
consts.py File 61.95 KB 0644
debug.py File 959 B 0644
envelope.py File 9.37 KB 0644
feature_flags.py File 2.5 KB 0644
hub.py File 24.54 KB 0644
logger.py File 2.6 KB 0644
metrics.py File 1.42 KB 0644
monitor.py File 4.47 KB 0644
py.typed File 0 B 0644
scope.py File 74.09 KB 0644
scrubber.py File 5.99 KB 0644
serializer.py File 12.82 KB 0644
session.py File 5.08 KB 0644
sessions.py File 8.59 KB 0644
spotlight.py File 11.85 KB 0644
traces.py File 25.08 KB 0644
tracing.py File 50.33 KB 0644
tracing_utils.py File 54.36 KB 0644
transport.py File 44.41 KB 0644
types.py File 1.24 KB 0644
utils.py File 65.96 KB 0644
worker.py File 10.91 KB 0644