foozzi/yaudio

View on GitHub

Showing 287 of 287 total issues

File vlc.py has 6055 lines of code (exceeds 250 allowed). Consider refactoring.
Open

#! /usr/bin/python
# -*- coding: utf-8 -*-

# Python ctypes bindings for VLC
#
Severity: Major
Found in src/vlc.py - About 2 wks to fix

    MediaPlayer has 117 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class MediaPlayer(_Ctype):
        '''Create a new MediaPlayer instance.
    
        It may take as parameter either:
          - a string (media URI), options... In this case, a vlc.Instance will be created.
    Severity: Major
    Found in src/vlc.py - About 2 days to fix

      Function find_lib has a Cognitive Complexity of 55 (exceeds 5 allowed). Consider refactoring.
      Open

      def find_lib():
          dll = None
          plugin_path = os.environ.get('PYTHON_VLC_MODULE_PATH', None)
          if 'PYTHON_VLC_LIB_PATH' in os.environ:
              try:
      Severity: Minor
      Found in src/vlc.py - About 1 day to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Instance has 56 functions (exceeds 20 allowed). Consider refactoring.
      Open

      class Instance(_Ctype):
          '''Create a new Instance instance.
      
          It may take as parameter either:
            - a string
      Severity: Major
      Found in src/vlc.py - About 1 day to fix

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def libvlc_vlm_change_media(p_instance, psz_name, psz_input, psz_output, i_options, ppsz_options, b_enabled, b_loop):
            '''Edit the parameters of a media. This will delete all existing inputs and
            add the specified one.
            @param p_instance: the instance.
            @param psz_name: the name of the new broadcast.
        Severity: Major
        Found in src/vlc.py and 1 other location - About 6 hrs to fix
        src/vlc.py on lines 4259..4274

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 107.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def libvlc_vlm_add_broadcast(p_instance, psz_name, psz_input, psz_output, i_options, ppsz_options, b_enabled, b_loop):
            '''Add a broadcast, with one input.
            @param p_instance: the instance.
            @param psz_name: the name of the new broadcast.
            @param psz_input: the input MRL.
        Severity: Major
        Found in src/vlc.py and 1 other location - About 6 hrs to fix
        src/vlc.py on lines 4376..4392

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 107.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def libvlc_video_get_size(p_mi, num):
            '''Get the pixel dimensions of a video.
            @param p_mi: media player.
            @param num: number of the video (starting from, and most commonly 0).
            @return: px pixel width, py pixel height.
        Severity: Major
        Found in src/vlc.py and 1 other location - About 4 hrs to fix
        src/vlc.py on lines 5818..5837

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 79.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def libvlc_video_get_cursor(p_mi, num):
            '''Get the mouse pointer coordinates over a video.
            Coordinates are expressed in terms of the decoded video resolution,
            B{not} in terms of pixels on the screen/viewport (to get the latter,
            you can query your windowing system directly).
        Severity: Major
        Found in src/vlc.py and 1 other location - About 4 hrs to fix
        src/vlc.py on lines 5785..5794

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 79.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

            def __new__(cls, *args):
                if args:
                    i = args[0]
                    if isinstance(i, _Ints):
                        return _Constructor(cls, i)
        Severity: Major
        Found in src/vlc.py and 1 other location - About 4 hrs to fix
        src/vlc.py on lines 2047..2056

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 78.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

            def __new__(cls, *args):
                if args:
                    i = args[0]
                    if isinstance(i, _Ints):
                        return _Constructor(cls, i)
        Severity: Major
        Found in src/vlc.py and 1 other location - About 4 hrs to fix
        src/vlc.py on lines 2394..2403

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 78.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def libvlc_audio_set_format(mp, format, rate, channels):
            '''Set decoded audio format.
            This only works in combination with L{libvlc_audio_set_callbacks}(),
            and is mutually exclusive with L{libvlc_audio_set_format_callbacks}().
            @param mp: the media player.
        Severity: Major
        Found in src/vlc.py and 1 other location - About 3 hrs to fix
        src/vlc.py on lines 3829..3841

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 69.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def libvlc_set_app_id(p_instance, id, version, icon):
            '''Sets some meta-information about the application.
            See also L{libvlc_set_user_agent}().
            @param p_instance: LibVLC instance.
            @param id: Java-style application identifier, e.g. "com.acme.foobar".
        Severity: Major
        Found in src/vlc.py and 1 other location - About 3 hrs to fix
        src/vlc.py on lines 5417..5430

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 69.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

            def get_full_title_descriptions(self):
                '''Get the full description of available titles.
                @return: the titles list
                @version: LibVLC 3.0.0 and later.
                '''
        Severity: Major
        Found in src/vlc.py and 1 other location - About 3 hrs to fix
        src/vlc.py on lines 2756..2765

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

            def get_full_chapter_descriptions(self, i_chapters_of_title):
                '''Get the full description of available chapters.
                @param i_chapters_of_title: index of the title to query for chapters (uses current title if set to -1).
                @return: the chapters list
                @version: LibVLC 3.0.0 and later.
        Severity: Major
        Found in src/vlc.py and 1 other location - About 3 hrs to fix
        src/vlc.py on lines 2746..2754

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Function setupUi has 86 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            def setupUi(self, MainWindow):
                MainWindow.setObjectName("MainWindow")
                MainWindow.resize(800, 600)
                self.centralwidget = QtWidgets.QWidget(MainWindow)
                self.centralwidget.setObjectName("centralwidget")
        Severity: Major
        Found in src/main.py - About 3 hrs to fix

          File yaudio.py has 309 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          import sys
          from PyQt5 import QtWidgets
          from PyQt5.QtWidgets import (QApplication, QWidget, QInputDialog, 
              QLineEdit, QFrame)
          from PyQt5 import QtCore, QtGui
          Severity: Minor
          Found in src/yaudio.py - About 3 hrs to fix

            Similar blocks of code found in 16 locations. Consider refactoring.
            Open

            def libvlc_vlm_set_output(p_instance, psz_name, psz_output):
                '''Set the output for a media.
                @param p_instance: the instance.
                @param psz_name: the media to work on.
                @param psz_output: the output MRL (the parameter to the "sout" variable).
            Severity: Major
            Found in src/vlc.py and 15 other locations - About 3 hrs to fix
            src/vlc.py on lines 4303..4313
            src/vlc.py on lines 4327..4338
            src/vlc.py on lines 4340..4350
            src/vlc.py on lines 4352..4362
            src/vlc.py on lines 4364..4374
            src/vlc.py on lines 4427..4437
            src/vlc.py on lines 4457..4467
            src/vlc.py on lines 4469..4479
            src/vlc.py on lines 4481..4491
            src/vlc.py on lines 4493..4503
            src/vlc.py on lines 4505..4516
            src/vlc.py on lines 4518..4529
            src/vlc.py on lines 4531..4542
            src/vlc.py on lines 6274..6285
            src/vlc.py on lines 6287..6298

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 63.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 16 locations. Consider refactoring.
            Open

            def libvlc_vlm_get_media_instance_position(p_instance, psz_name, i_instance):
                '''Get vlm_media instance position by name or instance id.
                @param p_instance: a libvlc instance.
                @param psz_name: name of vlm media instance.
                @param i_instance: instance id.
            Severity: Major
            Found in src/vlc.py and 15 other locations - About 3 hrs to fix
            src/vlc.py on lines 4303..4313
            src/vlc.py on lines 4315..4325
            src/vlc.py on lines 4327..4338
            src/vlc.py on lines 4340..4350
            src/vlc.py on lines 4352..4362
            src/vlc.py on lines 4364..4374
            src/vlc.py on lines 4427..4437
            src/vlc.py on lines 4469..4479
            src/vlc.py on lines 4481..4491
            src/vlc.py on lines 4493..4503
            src/vlc.py on lines 4505..4516
            src/vlc.py on lines 4518..4529
            src/vlc.py on lines 4531..4542
            src/vlc.py on lines 6274..6285
            src/vlc.py on lines 6287..6298

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 63.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 16 locations. Consider refactoring.
            Open

            def libvlc_vlm_get_media_instance_length(p_instance, psz_name, i_instance):
                '''Get vlm_media instance length by name or instance id.
                @param p_instance: a libvlc instance.
                @param psz_name: name of vlm media instance.
                @param i_instance: instance id.
            Severity: Major
            Found in src/vlc.py and 15 other locations - About 3 hrs to fix
            src/vlc.py on lines 4303..4313
            src/vlc.py on lines 4315..4325
            src/vlc.py on lines 4327..4338
            src/vlc.py on lines 4340..4350
            src/vlc.py on lines 4352..4362
            src/vlc.py on lines 4364..4374
            src/vlc.py on lines 4427..4437
            src/vlc.py on lines 4457..4467
            src/vlc.py on lines 4469..4479
            src/vlc.py on lines 4493..4503
            src/vlc.py on lines 4505..4516
            src/vlc.py on lines 4518..4529
            src/vlc.py on lines 4531..4542
            src/vlc.py on lines 6274..6285
            src/vlc.py on lines 6287..6298

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 63.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 16 locations. Consider refactoring.
            Open

            def libvlc_vlm_get_media_instance_chapter(p_instance, psz_name, i_instance):
                '''Get vlm_media instance chapter number by name or instance id.
                @param p_instance: a libvlc instance.
                @param psz_name: name of vlm media instance.
                @param i_instance: instance id.
            Severity: Major
            Found in src/vlc.py and 15 other locations - About 3 hrs to fix
            src/vlc.py on lines 4303..4313
            src/vlc.py on lines 4315..4325
            src/vlc.py on lines 4327..4338
            src/vlc.py on lines 4340..4350
            src/vlc.py on lines 4352..4362
            src/vlc.py on lines 4364..4374
            src/vlc.py on lines 4427..4437
            src/vlc.py on lines 4457..4467
            src/vlc.py on lines 4469..4479
            src/vlc.py on lines 4481..4491
            src/vlc.py on lines 4493..4503
            src/vlc.py on lines 4505..4516
            src/vlc.py on lines 4531..4542
            src/vlc.py on lines 6274..6285
            src/vlc.py on lines 6287..6298

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 63.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Severity
            Category
            Status
            Source
            Language