# Jen

## 1 Introduction to Jen

### 1.1 What is Jen?

Jen is an addon written by a long time Kodi Developer. It is free to use and has universalscrapers integrated into it. This addon does not host any of the content which is found and has no affiliation with any of the content providers. This addon simply searches websites for content. Use at your own risk!

## 2 How to Install Jen

### 2.1 Follow the Instructions to Make a Jen Addon

#### 2.1.1 Add an Icon

- Add an icon to the main jen folder.
- It should be 512 x 512 and it must be called icon.png

#### 2.1.2 Add Fanart

- Add fanart to the main jen folder
- It should be 1920 x 1080 and must be called fanart.jpg

#### 2.1.3 Changing the addon.xml

- Change the addon id and name and anything else you need to suit your addon.

#### 2.1.4 Change the name of the folder

- Change the name of the folder from plugin.video.jen to the addon id in your addon.xml

#### 2.1.5 Changing the settings.xml

- Open resources/settings.xml
- Change plugin.video.jen to the addon id in your addon.xml
- Add your apis to each default=""

    <setting label="TVDb api key" type="text" id="tvdb_api_key" option="hidden" default="" visible="eq(-3,true)"/>
    <setting label="TMDb api key" type="text" id="tmdb_api_key" option="hidden" default="" visible="eq(-4,true)"/>
    <setting label="Trakt client id" type="text" id="trakt_api_client_id" option="hidden" default="" visible="eq(-5,true)"/>
    <setting label="Trakt client secret" type="text" id="trakt_api_client_secret" option="hidden" visible="!eq(-1,8b3c509d7ae20fb31efcf95a7f030da562c37a8f0d9cd100db6ac1a41970f8ac) + eq(-6,true)" default=""/>
    <setting label="Last.fm api key" type="text" id="lastfm_api_key" option="hidden" default="" visible="eq(-7,true)"/>
    <setting label="Last.fm secret" type="text" id="lastfm_secret" option="hidden" visible="!eq(-1,3ec34c514a9230ebf006c8e24a8419d6) + eq(-8,true)" default=""/>

#### 2.1.6 Changing the strings.po

- Open resources/language/English/strings.po
- Change the top 3 lines to reflect your addon

#### 2.1.7 Fill out the variables in the default.py

- Fill out these lines in the default.py
- Url of the root xml file is required and at least a trakt or a tmdb api is required

    root_xml_url = "http://"  # url of the root xml file
    __builtin__.tvdb_api_key = ""  # tvdb api key
    __builtin__.tmdb_api_key = ""  # tmdb api key
    __builtin__.trakt_client_id = ""  # trakt client id
    __builtin__.trakt_client_secret = ""  # trakt client secret
    __builtin__.search_db_location = ""  # location of search db

## 3 How to Get API Keys for Jen

### 3.1 TMDB

- You can get a TMDB Api by going to website.
- Use google.com for url

### 3.2 TRAKT

- You can get a Trakt Api by clicking here
- Use google.com for url

### 3.3 TVDB

- You can get a TVDB Api by clicking here
- May need to be signed in to your account to access this page

## 4 Upgrading Jen

- Slide over your icon, fanart, strings.po, settings.xml and addon.xml to the new version
- Copy over the configuration variables in your default.py
- Up your addon.xml version number (if required)
- Zip up the new folder and add the correct version number to the end eg. plugin.video.jen-1.1.zip
- Push out new version

## 5 Jen Plugins

### 5.1 How to Add a Plugin

- Plugins are found in resources/lib/plugins.
- The plugin.py can be found in resources/lib/util
- You can see where you can overwrite default behaviour. If there are any other useful ones, open an issue.

### 5.2 Using Trakt Plugin

#### 5.2.1 How to Add a Trakt List

    <dir>
    <title></title>
    <trakt></trakt>
    </dir>

- See the trakt.py for examples

#### 5.2.2 How to Find Lists in Trakt that Belong to Others

1. Go to search and type what you're looking for eg. War
2. Click on Lists on the left
3. Open a list
4. Copy the url and add the .api and /items (see "How to Add an Individual Trakt List to your XML above)

#### 5.2.3 How to Fix Trakt Lists that Aren't Showing

1. Make sure the trakt url is correct.
2. If your list is private (or account is private), then you need to make both public.
3. Make sure you have trakt apis in default.py and settings.xml
4. Make sure the plugins folder has the unidecode folder.
5. Make sure you have the TMDB Api in default.py as well. If you don't want to get a TMDB Api you will need to go to resources/lib/plugins/trakt.py and change line 113 from
6. Make sure you have the trakt/tmdb api key. Sometimes they get cancelled or expired.

    SKIP_TMDB_INFO = False to SKIP_TMDB_INFO = True
    **Note this will let you open lists but you will not have artwork**

### 5.3 Using TMDB Plugin

#### 5.3.1 How to Add a TMDB List

    <dir>
    <title></title>
    <tmdb></tmdb>
    </dir>

- See the TMDB.py for examples.

#### 5.3.2 How to Fix TMDB Lists that Aren't Showing

1. Make sure the tmdb url is correct.
2. Make sure you have tmdb apis in default.py
3. Make sure the plugins folder has the unidecode folder.
4. Make sure you have the trakt/tmdb api key. Sometimes they get cancelled or expired.

### 5.4 Using IMDB Plugin

#### 5.4.1 How to Add an IMDB List

    <dir>
    <title></title>
    <imdburl></imdburl>
    </dir>

## 6 Hosting

### 6.1 Using Github for Hosting

#### 6.1.1 How to get Raw URL

- Click on the file you want the url for.
- Click on the raw icon.
- Copy the url in the address bar.

### 6.2 Using Pastebin for Hosting

#### 6.2.1 How to get Raw URL

- Click on the file you want the url for.
- Click on the raw icon.
- Copy the url in the address bar.

## 7 How to Add Search to Jen

### 7.1 Trakt

    <dir>
      <title>Search Trakt</title>
      <trakt>search</trakt>
    </dir>

### 7.2 TMDB

    <dir>
      <title>Search TMDB</title>
      <tmdb>search</tmdb>
    </dir>

### 7.3 IMDB

    <dir>
      <title>Search IMDB</title>
      <imdburl>search</imdburl>
    </dir>

## 8 XML Formats for Jen

- You can find all formats in xml/other/jenformats.xml

## 9 Adding Customized Icons

- Add these to your main.xml in order to add these icons to your startup screen.
- Just change plugin.video.jen to your addon id

### 9.1 Settings

    <plugin>
    <name>30701</name>
    <link>plugin://plugin.video.jen/?action=openSettings</link>
    <thumbnail></thumbnail>
    </plugin>

### 9.2 Search

    <plugin>
    <name>30702</name>
    <link>plugin://plugin.video.jen/?action=search</link>
    <thumbnail></thumbnail>
    </plugin>

## 10 Changing List Colours

- You can change a list colour for trakt and tmdb lists by opening the py files and changing the <title> colour.
- Only the title above the meta tag needs changing. See below. Change blue to whatever colour you want.

    Movies

        xml = "<item>" \
              "<title>[COLOR blue]%s[/COLOR]</title>" \
              "<meta>" \
              "<content>movie</content>" \
              "<imdb>%s</imdb>" \
              "<title>%s</title>" \
              "<year>%s</year>" \
              "</meta>" \
              "<link>" \
              "<sublink>search</sublink>" \
              "<sublink>searchsd</sublink>" \
              "</link>" \
              "<thumbnail>%s</thumbnail>" \
              "<fanart>%s</fanart>" \
              "</item>" % (title, imdb, title, year, thumbnail, fanart)
        return xml

    TV Show

        xml = "<dir>"\
              "<title>[COLOR blue]%s[/COLOR]</title>"\
              "<meta>"\
              "<content>tvshow</content>"\
              "<imdb>%s</imdb>"\
              "<tvshowtitle>%s</tvshowtitle>"\
              "<year>%s</year>"\
              "</meta>"\
              "<link>trakt_tv_show(%s, %s, %s, %s, %s)</link>"\
              "<thumbnail>%s</thumbnail>" \
              "<fanart>%s</fanart>" \
              "</dir>" % (title, imdb, title, year, trakt_id, year, title, tmdb,
                          imdb, thumbnail, fanart)
        return xml

    TV Seasons

        xml = "<dir>"\
              "<title>[COLOR blue]Season %s[/COLOR]</title>"\
              "<meta>"\
              "<imdb>%s</imdb>"\
              "<content>season</content>"\
              "<season>%s</season>"\
              "</meta>"\
              "<link>trakt_season(%s,%s, %s, %s, %s, %s)</link>"\
              "<thumbnail>%s</thumbnail>" \
              "<fanart>%s</fanart>" \
              "</dir>" % (season, imdb, season, trakt_id, season, year,
                          tvtitle, tmdb,
                          imdb, thumbnail, fanart)
        return xml

    TV Episodes

        xml = "<item>"\
              "<title>[COLOR blue]%s[/COLOR]</title>"\
              "<meta>"\
              "<content>episode</content>"\
              "<imdb>%s</imdb>"\
              "<tvshowtitle>%s</tvshowtitle>"\
              "<year>%s</year>"\
              "<title>%s</title>"\
              "<premiered>%s</premiered>"\
              "<season>%s</season>"\
              "<episode>%s</episode>"\
              "</meta>"\
              "<link>"\
              "<sublink>search</sublink>"\
              "<sublink>searchsd</sublink>"\
              "</link>"\
              "<thumbnail>%s</thumbnail>" \
              "<fanart>%s</fanart>" % (
                  title, imdb, tvtitle, year, title,
                  premiered, season, episode,
                  thumbnail, fanart)
        xml += "</item>"
        return xml