aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md28
-rw-r--r--.gitignore1
-rw-r--r--LICENSE21
-rw-r--r--Packages16
-rw-r--r--README.md164
-rw-r--r--Release8
-rw-r--r--assets/Banners/RepoHeader.pngbin0 -> 25707 bytes
-rw-r--r--assets/Screenshots/screenshot.pngbin0 -> 31622 bytes
-rw-r--r--assets/Screenshots/screenshot2.pngbin0 -> 31622 bytes
-rw-r--r--assets/clean.sh8
-rw-r--r--assets/update.sh18
-rw-r--r--depictions/changelog.html120
-rw-r--r--depictions/com.sukarodo.samplepackage/changelog.xml6
-rw-r--r--depictions/com.sukarodo.samplepackage/info.xml45
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/.ignore1
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/cydia.jpgbin0 -> 128506 bytes
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpgbin0 -> 18998 bytes
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/shot1.jpgbin0 -> 40737 bytes
-rw-r--r--depictions/index.html263
-rw-r--r--depictions/js/data-loader-engine.js78
-rw-r--r--depictions/js/ios_version_check.js126
-rw-r--r--depictions/js/jquery.querystring.js13
-rw-r--r--depictions/screenshots.html135
-rw-r--r--depictions/style.css30
-rw-r--r--dpkg-scanpackages295
-rw-r--r--index.html73
-rw-r--r--repo.xml14
-rw-r--r--sileo-featured.json13
-rw-r--r--sileodepictions/com.sukarodo.samplepackage/depiction.json85
-rw-r--r--sileodepictions/js/data-loader-engine.js78
-rw-r--r--sileodepictions/js/ios_version_check.js126
-rw-r--r--sileodepictions/js/jquery.querystring.js13
32 files changed, 1778 insertions, 0 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..bd84632
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,28 @@
+---
+name: Bug Report
+about: Create a report to help me improve
+
+---
+
+**Describe The Bug:**
+A clear and concise description of what the bug is.
+Please do not post questions or `how do I`'s here. Contact/DM [@sukarodo](http://twitter.com/sukarodo) on Twitter.
+
+**How To Reproduce:**
+Steps to reproduce the behavior:
+
+**Expected Behaviour:**
+A clear and concise description of what you expected to happen.
+
+**Screenshots:**
+If applicable, add screenshots to help explain your problem.
+
+**Platform:**
+Where does the error occurs?
+ - Mobile Browser [e.g Mobile Safari, Chrome]
+ - Cydia
+ - Sileo
+ - Desktop Browser [e.g. Safari, Firefox]
+
+**Any Additional Context:**
+Add any other context about the problem here.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..49c614d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Jay.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Packages b/Packages
new file mode 100644
index 0000000..992b680
--- /dev/null
+++ b/Packages
@@ -0,0 +1,16 @@
+Package: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Version: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Architecture: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Maintainer: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Filename: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Size: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+MD5sum: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+SHA1: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+SHA256: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Section: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Description: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+SileoDepiction: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py or Manually Entered if Not In Tweaks `control` file.
+Depiction: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py or Manually Entered if Not In Tweaks `control` file.
+Installed-Size: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Name: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
+Priority: AUTOMATICALLY ENTERED BY SCRIPT / DPKG-SCANPACKAGES.py
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a5faabf
--- /dev/null
+++ b/README.md
@@ -0,0 +1,164 @@
+# Sidia (Based On Reposi3)
+A Sileo / Cydia repository template. This template contains samples on how you can easily make depiction pages without replicating your html pages. The pages are styled using [Bootsrap](http://getbootstrap.com/) which is really easy to use (for Cydia), and the Sileo pages are styled using JavaScript Object Notation.
+
+This guide does NOT cover creating .deb files but will briefly cover assiging depictions.
+
+#### CREDITS TO: @Supermamon, @EssentialisRepo, Saurik, and the Sileo Team
+
+## How to use this template
+If you are *not* hosting your repo on [Github Pages](https://pages.github.com/), you can download the zip file [here](https://github.com/sukarodo/Sidia/archive/master.zip) and extract to a subfolder on your website.
+
+**Release File**
+
+Edit `Release` file. Modify the items pointed by `<--`
+
+ Origin: Sidia <--
+ Label: Sidia <--
+ Suite: stable
+ Version: 1.0
+ Codename: ios
+ Architectures: iphoneos-arm
+ Components: main
+ Description: Sidia - a modern cydia / sileo apt repository template <--
+
+**Branding**
+
+Open `index.html`
+Change <title>Sidia</title> to whatever you wish.
+Change lines 54 - 63 to whatever you wish.
+Change line 71 into your own URL.
+Note: YOU DO NOT NEED THIS. YOU CAN ALSO MAKE YOUR OWN. DO WHAT YOU WISH.
+
+Add "CydiaIcon.png" for your Cydia / Sileo Repository Logo.
+
+
+**Page Footers**
+
+This data are the links that appear at the bottom of every **Cydia Depiction**. The data is stored in `repo.xml` at the root folder of your repo.
+
+```xml
+<repo>
+ <footerlinks>
+ <link>
+ <name>Follow me on Twitter</name>
+ <url>https://twitter.com/Sukarodo</url>
+ <iconclass>glyphicon glyphicon-user</iconclass>
+ </link>
+ <link>
+ <name>I want this depiction template</name>
+ <url>https://github.com/sukarodo/sidia</url>
+ <iconclass>glyphicon glyphicon-thumbs-up</iconclass>
+ </link>
+ </footerlinks>
+</repo>
+```
+
+
+### Adding a simple depiction page (Cydia)
+
+Go to the depictions folder and duplicate the folder `com.sukarodo.oldpackage`.
+Rename the duplicate with the same name as your package name.
+There are 2 files inside the folder - `info.xml` and `changelog.xml`.
+Update the 2 files with information regading your package.
+The tags are pretty much self-explanatory.
+Contact [@sukarodo](https://twitter.com/sukarodo) for questions.
+
+`info.xml`.
+```xml
+<package>
+ <id>com.sukarodo.oldpackage</id>
+ <name>Old Package</name>
+ <version>1.0.0-1</version>
+ <compatibility>
+ <firmware>
+ <miniOS>5.0</miniOS>
+ <maxiOS>7.0</maxiOS>
+ <otherVersions>unsupported</otherVersions>
+ <!--
+ for otherVersions, you can put either unsupported or unconfirmed
+ -->
+ </firmware>
+ </compatibility>
+ <dependencies></dependencies>
+ <descriptionlist>
+ <description>This is an old package. Requires iOS 7 and below..</description>
+ </descriptionlist>
+ <screenshots></screenshots>
+ <changelog>
+ <change>Initial release</change>
+ </changelog>
+ <links></links>
+</package>
+```
+
+`changelog.xml`.
+```xml
+<changelog>
+ <changes>
+ <version>1.0.0-1</version>
+ <change>Initial release</change>
+ </changes>
+</changelog>
+```
+### Adding a simple depiction page (Sileo)
+
+Go to the /sileodepictions/com.sukarodo.samplepackage and copy the file `depiction.json`.
+Move into a folder labeled as your package name.
+Edit The Labeled Parts (i.e. VERSION_NUMBER, TWEAK_NAME, etc.)
+Contact [@sukarodo](https://twitter.com/sukarodo) for questions.
+
+#### Link the depiction page in your tweak's `control` file
+
+You can add the depictions url at the end of your package's `control` file before compiling it.
+The depiction line should look like this:
+
+```text
+Depiction: https://username.github.io/repo/depictions/?p=[idhere]
+```
+
+Replace `[idhere]` with your actual package name.
+
+```text
+Depiction: https://username.github.io/repo/depictions/?p=com.sukarodo.oldpackage
+```
+For Sileo Depictions, add the SileoDepiction key in your `control` file before compiling it.
+
+```text
+SileoDepiction: https://username.github.io/repo/sileodepictions/com.sukarodo.samplepackage/depiction.json.json
+````
+
+#### Rebuilding the `Packages` file
+
+With your updated `control` file, build your tweak.
+*REMOVE THE PACKAGES FILE WITHIN FIRST*
+Store the resulting `.deb.` file into the `/debs/` folder of your repo.
+Build your `Packages` file and compress with `bzip2`.
+
+```
+run update.sh on Mac. (Move update & clean.sh from /assets/ to /*)
+Remove "update.sh" and "clean.sh" on Windows.
+```
+
+_Windows users, see [dpkg-scanpackages-py](https://github.com/supermamon/dpkg-scanpackages-py) or [scanpkg](https://github.com/mstg/scanpkg)._
+
+#### Cydia / Sileo at last!
+
+If you haven't done yet, go ahead and add your repo to Cydia / Sileo.
+You should now be able to install your tweak into your own repo.
+
+### Cleanup
+
+Just a cleanup step, remove the debs that came with this template and re-run the commands on step 3. You can keep the sample depictions for reference but they're not needed for your repo.
+
+## Sileo Extras
+
+These are some extra things that can make your repository look even better on Sileo.
+
+### Featured Packages (`sileo-featured.json`)
+
+Change The Following Lines:
+```
+ "url": "https://raw.githubusercontent.com/sukarodo/Sidia/master/assets/Banners/RepoHeader.png", <---- The Package Banner
+ "title": "Sample Package", <---- Your Package Name
+ "package": "com.sukarodo.newpackage", <---- The Actual Package
+```
diff --git a/Release b/Release
new file mode 100644
index 0000000..443b4c1
--- /dev/null
+++ b/Release
@@ -0,0 +1,8 @@
+Origin: Struggling Doge Test Repo
+Label: Struggling Doge Test Repo
+Suite: stable
+Version: 1.0
+Codename: ios
+Architectures: iphoneos-arm
+Components: main
+Description: A small test repository to hold tweaks \ No newline at end of file
diff --git a/assets/Banners/RepoHeader.png b/assets/Banners/RepoHeader.png
new file mode 100644
index 0000000..f3caf18
--- /dev/null
+++ b/assets/Banners/RepoHeader.png
Binary files differ
diff --git a/assets/Screenshots/screenshot.png b/assets/Screenshots/screenshot.png
new file mode 100644
index 0000000..97d3f7a
--- /dev/null
+++ b/assets/Screenshots/screenshot.png
Binary files differ
diff --git a/assets/Screenshots/screenshot2.png b/assets/Screenshots/screenshot2.png
new file mode 100644
index 0000000..11baacd
--- /dev/null
+++ b/assets/Screenshots/screenshot2.png
Binary files differ
diff --git a/assets/clean.sh b/assets/clean.sh
new file mode 100644
index 0000000..12a8d57
--- /dev/null
+++ b/assets/clean.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+echo "Cleaning..."
+
+echo "removing .DS_Store files"
+find . -name '.DS_Store' -delete
+
+echo "done."
diff --git a/assets/update.sh b/assets/update.sh
new file mode 100644
index 0000000..5435628
--- /dev/null
+++ b/assets/update.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+echo
+
+./clean.sh
+
+echo
+echo "Rebuilding package list..."
+echo "--------------------------"
+
+rm -f Packages*
+dpkg-scanpackages -m ./debs /dev/null > Packages
+bzip2 -k Packages
+./dpkg-scanpackages -m ./debians/ /dev/null > Packages
+
+echo "--------------------------"
+echo "Done."
+echo
diff --git a/depictions/changelog.html b/depictions/changelog.html
new file mode 100644
index 0000000..9fbe709
--- /dev/null
+++ b/depictions/changelog.html
@@ -0,0 +1,120 @@
+ <!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Changelog</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <link rel="stylesheet" href="style.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+
+ <script type="text/javascript" src="js/jquery.querystring.js"></script>
+ <script type="text/javascript" src="js/data-loader-engine.js"></script>
+ <script type="text/javascript" src="js/ios_version_check.js"></script>
+ <style>
+ @media (max-width: 767px) {
+ body{background:#efeff4!important;margin:0;padding:0;border:0;outline:0;box-sizing:border-box}
+ }
+ </style>
+ <script type="text/javascript">
+
+ bundleid = $.QueryString['p'];
+
+ var contentBlocks = {
+ "#changeLogList" :
+ {"type":"articles"
+ ,"source" :"changelog"
+ ,"titleSource" :"version"
+ ,"paragraphSource" :"change"
+ ,"titleElement" : "<h5>"
+ ,"paragraphContainer": "<ul class='list-group'>"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({
+ type : "GET",
+ dataType: "xml",
+ url : (bundleid+"/changelog.xml"),
+ success : function(xml){
+ data_loader_engine(contentBlocks,xml)
+ },
+ cache : false,
+ error: function() {
+ $("#packageError").show();
+ $("#packageInformation").hide();
+ }
+ }); //ajax
+
+ }); // ready
+ </script>
+</head>
+<body>
+<br />
+
+<div id="packageInformation">
+ <div class="container" id="changeLogList">
+ </div>
+</div>
+<div id="packageError" style="display:none">
+ <div class="container">
+ <div class="alert alert-danger">
+ <strong>Oh snap!</strong> The package you are tying to view is not hosted on this repository.
+ </div>
+ </div>
+</div>
+<!-- REPO FOOTER -->
+<script type="text/javascript">
+ var repoContents = {
+ "#repoFooterLinks" :
+ {"type":"custom"
+ ,"source":"repo>footerlinks>link"
+ ,"render":function(element,source) {
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+ } //render
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({type: "GET", dataType: "xml",url : ("../repo.xml"),cache: false,
+ success : function(xml){
+ data_loader_engine(repoContents,xml);
+ if (navigator.userAgent.search(/Cydia/) != -1) {
+ $("a").each(function() {
+ console.log($(this).text());
+ $(this).attr("target","_blank");
+ });
+ }
+ },
+
+ error: function() {$("#contactInfo").hide()}
+ }); //ajax
+
+
+ }); // ready
+
+</script>
+
+<div id="contactInfo">
+ <div class="container">
+ <h5>CONTACT</h5>
+ <ul class="list-group" id="repoFooterLinks">
+ </ul>
+ </div>
+</div>
+<!-- REPO FOOTER ENDS -->
+
+</body>
+</html>
diff --git a/depictions/com.sukarodo.samplepackage/changelog.xml b/depictions/com.sukarodo.samplepackage/changelog.xml
new file mode 100644
index 0000000..d736af0
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/changelog.xml
@@ -0,0 +1,6 @@
+<changelog>
+ <changes>
+ <version>1.0.0</version>
+ <change>Initial Release</change>
+ </changes>
+</changelog>
diff --git a/depictions/com.sukarodo.samplepackage/info.xml b/depictions/com.sukarodo.samplepackage/info.xml
new file mode 100644
index 0000000..e7bed58
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/info.xml
@@ -0,0 +1,45 @@
+<package>
+ <id>com.sukarodo.samplepackage</id>
+ <name>Sample Package</name>
+ <version>1.0</version>
+ <compatibility>
+ <firmware>
+ <miniOS>7.0</miniOS>
+ </firmware>
+ </compatibility>
+ <dependencies>
+ <package>mobilesubstrate</package>
+ </dependencies>
+ <shortDescription>This is a sample new package. Firmware should be greater than 7.0</shortDescription>
+ <descriptionlist>
+ <description>This is an package will full depictions.</description>
+ <description>It has more description lines.</description>
+ <description><![CDATA[
+ You can also have<br/>
+ a multi-line item.
+ ]]>
+ </description>
+ </descriptionlist>
+ <screenshots>
+ <screenshot>
+ <description>This is a description for screenshot 1. It's Cydia!</description>
+ <image>cydia.jpg</image>
+ </screenshot>
+ <screenshot>
+ <description>This is a description for screenshot 2. It's another Cydia!</description>
+ <image>cydia.jpg</image>
+ </screenshot>
+ </screenshots>
+ <changelog>
+ <change>Second release</change>
+ <change>It has feature 1</change>
+ <change>It has feature 2</change>
+ </changelog>
+ <links>
+ <link>
+ <name>/r/jailbreak</name>
+ <url>https://www.reddit.com/r/jailbreak</url>
+ <iconclass>fa fa-reddit</iconclass>
+ </link>
+ </links>
+</package>
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/.ignore b/depictions/com.sukarodo.samplepackage/screenshots/.ignore
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/.ignore
@@ -0,0 +1 @@
+
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/cydia.jpg b/depictions/com.sukarodo.samplepackage/screenshots/cydia.jpg
new file mode 100644
index 0000000..29c8801
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/cydia.jpg
Binary files differ
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpg b/depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpg
new file mode 100644
index 0000000..da0197b
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpg
Binary files differ
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/shot1.jpg b/depictions/com.sukarodo.samplepackage/screenshots/shot1.jpg
new file mode 100644
index 0000000..5c55f6b
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/shot1.jpg
Binary files differ
diff --git a/depictions/index.html b/depictions/index.html
new file mode 100644
index 0000000..0ea4024
--- /dev/null
+++ b/depictions/index.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>PackageName</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <link rel="stylesheet" href="style.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+ <script type="text/javascript" src="js/jquery.querystring.js"></script>
+ <script type="text/javascript" src="js/data-loader-engine.js"></script>
+ <script type="text/javascript" src="js/ios_version_check.js"></script>
+ <style>
+ @media (max-width: 767px) {
+ body{background:#efeff4!important;margin:0;padding:0;border:0;outline:0;box-sizing:border-box}
+ }
+ .jumbotron-bg {
+ background: green
+ }
+ </style>
+ <script type="text/javascript">
+
+ bundleid = $.QueryString['p'];
+
+ var contentBlocks = {
+ "#packageName" :
+ {"type":"text","source":"package>name"}
+ ,"#packageHeader" :
+ {"type":"custom"
+ ,"source":"package>name"
+ ,"render":function(element,source){
+ if (navigator.userAgent.search(/Cydia/) == -1) {
+ $(element).show();
+ }
+ }
+ }
+ ,"#packageVersion" :
+ {"type":"text","source":"package>version"}
+ ,"#packageShortDesc" :
+ {"type":"text","source":"package>shortDescription"}
+ ,"#compatibilityCheck" :
+ {"type":"custom"
+ ,"source":"package>compatibility>firmware"
+ ,"render":function(element,source){
+ var res = ios_version_check(
+ $(source).find("miniOS").text(),
+ $(source).find("maxiOS").text(),
+ $(source).find("otherVersions").text(),
+ function(message,isBad) {
+ $(element).html(message)
+ .addClass( (isBad?'alert-danger':'alert-success'));
+ }
+ );
+ if(res==0) {$(element).hide()}
+ }
+ }
+ ,"#descriptionList" :
+ {"type":"list"
+ ,"source" :"package>descriptionlist>description"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"emptyListCallback":function(e){$("#descriptionPanel").hide()}
+ }
+ ,"#screenshotsLink" :
+ {"type":"custom"
+ ,"source" :"package>screenshots>screenshot"
+ ,"render":function(element, source){
+ $("#screenshotsLink").remove();
+ if ($(source).size() == 0) {
+ return
+ }
+ // create screenshots link
+ $("#descriptionList").append(
+ $("<a class='link-item list-group-item'>")
+ .attr("href","screenshots.html?p="+bundleid)
+ .text("Screenshots")
+ );
+ }
+ }
+ ,"#versionBadge" : {"type":"text","source":"package>version"}
+ ,"#changesList" :
+ {"type":"list"
+ ,"source" :"package>changelog>change"
+ ,"reverseRender" : true
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"emptyListCallback":function(e){$("#changesList").hide()}
+ }
+ ,"#changelogLink" :
+ {"type":"custom"
+ ,"source" :"package>changelog>change"
+ ,"render":function(element, source){
+ $("#changelogLink").remove();
+ if ($(source).size() == 0) {
+ return
+ }
+ // create changelog link
+ $("#changesList").append(
+ $("<a class='link-item list-group-item'>")
+ .attr("href","changelog.html?p="+bundleid)
+ .text("Full Changelog")
+ );
+ }
+ }
+ ,"#dependencyList" :
+ {"type":"list"
+ ,"source" :"package>dependencies>package"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"emptyListCallback":function(e){$("#dependenciesContainer").remove()}
+ }
+ ,"#externalLinksList" :
+ {"type":"custom"
+ ,"source" :"package>links>link"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"render":function(element,source){
+ if ($(source).size()==0){
+ $('#externalLinksContainer').remove()
+ }
+
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+
+ }
+
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({
+ type : "GET",
+ dataType: "xml",
+ url : (bundleid+"/info.xml"),
+ success : function(xml){
+ document.title = $(xml).find("package>name").text();
+ data_loader_engine(contentBlocks,xml)
+
+ },
+ cache : false,
+ error: function() {
+ $("#packageError").show();
+ $("#packageInformation").hide();
+ }
+ }); //ajax
+
+ }); // ready
+ </script>
+</head>
+<body>
+<br />
+
+<div id="packageInformation">
+
+ <div id="packageHeader" class="container" style="display:none">
+ <div class="jumbotron">
+ <h1 id="packageName"></h1>
+ <p id="packageShortDesc">brought to you by Reposi3</p>
+ </div>
+ </div>
+
+ <div class="container">
+ <div id="compatibilityCheck" class="alert"></div>
+ </div>
+
+ <div class="container">
+ <h5>DESCRIPTION</h5>
+ <ul id="descriptionList" class="list-group">
+ <li id="screenshotsLink" />
+ </ul>
+ </div>
+
+ <div class="container">
+ <h5>IN THIS VERSION <span id="versionBadge" class="badge" /></h5>
+ <ul id="changesList" class="list-group">
+ <li id="changelogLink" />
+ </ul>
+ </div>
+ <div class="container" id="dependenciesContainer">
+ <h5>DEPENDENCIES</h5>
+ <ul id="dependencyList" class="list-group">
+ </ul>
+ </div>
+
+ <div class="container" id="externalLinksContainer">
+ <h5>LINKS</h5>
+ <ul id="externalLinksList" class="list-group">
+ </ul>
+ </div>
+
+</div>
+<div id="packageError" style="display:none">
+ <div class="container">
+ <div class="alert alert-danger">
+ <strong>Oh snap!</strong> The package you are tying to view is not hosted on this repository.
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript">
+ function setAnchorTargets() {
+ // if on Cydia, set link targets to _blank
+ if (navigator.userAgent.search(/Cydia/) != -1) {
+ $("a").each(function() {
+ $(this).attr("target","_blank");
+ });
+ }
+ }
+
+ var repoContents = {
+ "#repoFooterLinks" :
+ {"type":"custom"
+ ,"source":"repo>footerlinks>link"
+ ,"render":function(element,source) {
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+ } //render
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({type: "GET", dataType: "xml",url : ("../repo.xml"),cache: false,
+ success : function(xml){
+ data_loader_engine(repoContents,xml);
+ setAnchorTargets();
+ },
+ error: function() {
+ $("#contactInfo").hide();
+ setAnchorTargets();
+ }
+ }); //ajax
+
+
+ }); // ready
+
+</script>
+
+<div id="contactInfo">
+ <div class="container">
+ <h5>CONTACT</h5>
+ <ul class="list-group" id="repoFooterLinks">
+ </ul>
+ </div>
+</div>
+
+
+</body>
+</html>
diff --git a/depictions/js/data-loader-engine.js b/depictions/js/data-loader-engine.js
new file mode 100644
index 0000000..723b728
--- /dev/null
+++ b/depictions/js/data-loader-engine.js
@@ -0,0 +1,78 @@
+function data_loader_engine(contentBlocks,xml) {
+
+ /* Loop through each if the contentBlocks */
+ $.each(contentBlocks, function (key,contentInfo){
+
+ console.log('Processing '+key);
+ console.log(' type= '+contentInfo.type);
+
+ // go out if key element does not exits
+ if (!($(key).length)) {return}
+
+ switch(contentInfo.type) {
+ case "text":
+ var content = $(xml).find(contentInfo.source).text();
+ $(key).html(content)
+ break;
+ case "link":
+ console.log(' url= '+contentInfo.url);
+ console.log(' text= '+contentInfo.text);
+
+ var url = contentInfo.url;
+ var params = [];
+ if (contentInfo.params) {
+ $.each(contentInfo.params, function(){
+ this[1] = escape(this[1]);
+ params[params.length] = this.join('=');
+ });
+ }
+ url = url+'?'+params.join('&');
+ $(key).append( $("<a></a>")
+ .attr("href",url)
+ .text(contentInfo.text)
+ );
+ break;
+ case "list":
+ var list = $(xml).find(contentInfo.source);
+
+
+ if (list.size()==0) {
+ if (contentInfo.emptyListCallback) {
+ contentInfo.emptyListCallback($(key))
+ }
+ } else {
+ if (!!contentInfo.reverseRender) {
+ list = $(list).get().reverse();
+ }
+ $.each(list, function(index,value){
+ var item = $(value).text()
+
+ if (!!contentInfo.reverseRender) {
+ $(key).prepend( $(contentInfo.paragraphElement).html("<p>"+item+"</p>") )
+ } else {
+ $(key).append( $(contentInfo.paragraphElement).html("<p>"+item+"</p>") )
+ }
+ });
+ }
+ break;
+ case "articles":
+ var articles = $(xml).find(contentInfo.source).children();
+ var titleID = 0;
+ $.each(articles,function(index,article){
+ var articleTitle = $(article).find(contentInfo.titleSource).text()
+ $(key).append( $(contentInfo.titleElement).html(articleTitle));
+ var container = $(contentInfo.paragraphContainer).attr("id",++titleID);
+ $(key).append($(container));
+ $.each( $(article).find(contentInfo.paragraphSource), function(index,paragraph){
+ $(container).append( $(contentInfo.paragraphElement).html("<p>"+$(paragraph).text()+"</p>") )
+ }) //paragraph
+ }) //article
+
+ break;
+ case "custom":
+ if (!key) {return}
+ contentInfo.render( $(key), $(xml).find(contentInfo.source) )
+ break;
+ }//switch
+ }); //each
+}
diff --git a/depictions/js/ios_version_check.js b/depictions/js/ios_version_check.js
new file mode 100644
index 0000000..d6c0d8e
--- /dev/null
+++ b/depictions/js/ios_version_check.js
@@ -0,0 +1,126 @@
+/*
+most of the code here is writen by Timon Olsthoorn
+Follow him on -
+Github - https://github.com/tmnlsthrn
+Twitter - @TimonOlsthoorn
+*/
+
+/* Lotus - iosver.js
+ * Copyright (C) 2014-2015 Timon Olsthoorn (tmnlsthrn)
+ */
+
+/*
+ * Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation
+ * and/or other materials provided with the
+ * distribution.
+ * 3. The name of the author may not be used to endorse
+ * or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Adapted from https://github.com/tmnlsthrn/Lotus/blob/master/js/iosver.js
+
+
+// changed const to var for IE9/10 compatibity.
+var VERSION_CHECK_SUPPORTED = "Your iOS version is supported! &#x1f60a;";
+var VERSION_CHECK_NEEDS_UPGRADE = "Requires at least iOS %s &#x1f615;";
+var VERSION_CHECK_UNCONFIRMED = "Not yet tested on iOS %s &#x1f601;";
+var VERSION_CHECK_UNSUPPORTED = "Only compatible with iOS %s to %s &#x1f61e;";
+
+function ios_version_check(minIOS,maxIOS,otherIOS,callBack) {
+ "use strict";
+
+
+ function parseVersionString(version) {
+ var bits = version.split(".");
+ return [
+ parseInt(bits[0], 10),
+ parseInt(bits[1] ? bits[1] : 0, 10),
+ parseInt(bits[2] ? bits[2] : 0, 10)
+ ];
+ }
+
+ function compareVersions(one, two) {
+ // https://gist.github.com/TheDistantSea/8021359
+ for (var i = 0; i < one.length; ++i) {
+ if (two.length == i) {
+ return 1;
+ }
+
+ if (one[i] == two[i]) {
+ continue;
+ } else if (one[i] > two[i]) {
+ return 1;
+ } else {
+ return -1;
+ }
+ }
+
+ if (one.length != two.length) {
+ return -1;
+ }
+
+ return 0;
+ }
+
+ var version = navigator.appVersion.match(/CPU( iPhone)? OS (\d+)_(\d+)(_(\d+))? like/i);
+ if (!version) {
+ return 0;
+ }
+
+ var osVersion = [
+ parseInt(version[2], 10),
+ parseInt(version[3], 10),
+ parseInt(version[4] ? version[5] : 0, 10)
+ ],
+
+ osString = osVersion[0] + "." + osVersion[1] + (osVersion[2] && osVersion[2] != 0 ? "." + osVersion[2] : ""),
+ minString = minIOS,
+ maxString = maxIOS,
+
+ minVersion = parseVersionString(minString),
+ maxVersion = maxString ? parseVersionString(maxString) : null,
+
+ message = VERSION_CHECK_SUPPORTED,
+ isBad = false;
+
+ if (compareVersions(minVersion, osVersion) == 1) {
+ message = VERSION_CHECK_NEEDS_UPGRADE.replace("%s", minString);
+ isBad = true;
+ } else if (maxVersion && compareVersions(maxVersion, osVersion) == -1) {
+ if ("unsupported" == otherIOS) {
+ message = VERSION_CHECK_UNSUPPORTED.replace("%s", minString).replace("%s", maxString);
+ } else {
+ message = VERSION_CHECK_UNCONFIRMED.replace("%s", osString);
+ }
+
+ isBad = true;
+ }
+ callBack(message,isBad);
+
+ return (isBad?-1:1);
+}
diff --git a/depictions/js/jquery.querystring.js b/depictions/js/jquery.querystring.js
new file mode 100644
index 0000000..507d005
--- /dev/null
+++ b/depictions/js/jquery.querystring.js
@@ -0,0 +1,13 @@
+(function($) {
+ $.QueryString = (function(a) {
+ if (a == "") return {};
+ var b = {};
+ for (var i = 0; i < a.length; ++i)
+ {
+ var p=a[i].split('=');
+ if (p.length != 2) continue;
+ b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
+ }
+ return b;
+ })(window.location.search.substr(1).split('&'))
+})(jQuery);
diff --git a/depictions/screenshots.html b/depictions/screenshots.html
new file mode 100644
index 0000000..28b9739
--- /dev/null
+++ b/depictions/screenshots.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Screenshots</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <link rel="stylesheet" href="style.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+
+ <script type="text/javascript" src="js/jquery.querystring.js"></script>
+ <script type="text/javascript" src="js/data-loader-engine.js"></script>
+ <script type="text/javascript" src="js/ios_version_check.js"></script>
+ <style>
+ @media (max-width: 767px) {
+ body{background:#efeff4!important;margin:0;padding:0;border:0;outline:0;box-sizing:border-box}
+ }
+ </style>
+ <script type="text/javascript">
+
+ bundleid = $.QueryString['p'];
+
+ var contentBlocks = {
+ "#screenshotsList" :
+ {"type":"custom"
+ ,"source" :"package>screenshots>screenshot"
+ ,"render" : function(element,source){
+ console.log($(source).size());
+ if ($(source).size()==0) {
+ $(element).append( $("<div class='alert alert-danger'>The aren't any screenshots for this package</div>") );
+ return;
+ }
+ $.each(source, function(index,data) {
+ var th = $("<div class='thumbnail'>");
+ th.append($("<p>")
+ .text($(data).find('description').text())
+ )
+ th.append($("<img>")
+ .attr("src",bundleid+'/screenshots/'+$(data).find('image').text())
+ )
+ $(element).append(th);
+ });
+
+ }
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({
+ type : "GET",
+ dataType: "xml",
+ url : (bundleid+"/info.xml"),
+ success : function(xml){
+ document.title = $(xml).find("package>name").text();
+ data_loader_engine(contentBlocks,xml)
+ },
+ cache : false,
+ error: function() {
+ $("#packageError").show();
+ $("#packageInformation").hide();
+ }
+ }); //ajax
+
+ }); // ready
+ </script>
+</head>
+<body>
+<br />
+
+<div id="packageInformation">
+ <div class="container">
+ <h5>SCREENSHOTS</h5>
+ <ul id="screenshotsList" class="list-group">
+ </ul>
+ </div>
+</div>
+<div id="packageError" style="display:none">
+ <div class="container">
+ <div class="alert alert-danger">
+ <strong>Oh snap!</strong> The package you are tying to view is not hosted on this repository.
+ </div>
+ </div>
+</div>
+<!-- REPO FOOTER -->
+<script type="text/javascript">
+ var repoContents = {
+ "#repoFooterLinks" :
+ {"type":"custom"
+ ,"source":"repo>footerlinks>link"
+ ,"render":function(element,source) {
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+ } //render
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({type: "GET", dataType: "xml",url : ("../repo.xml"),cache: false,
+ success : function(xml){
+ data_loader_engine(repoContents,xml);
+ if (navigator.userAgent.search(/Cydia/) != -1) {
+ $("a").each(function() {
+ console.log($(this).text());
+ $(this).attr("target","_blank");
+ });
+ }
+ },
+ error: function() {$("#contactInfo").hide()}
+ }); //ajax
+
+
+ }); // ready
+
+</script>
+
+<div id="contactInfo">
+ <div class="container">
+ <h5>CONTACT</h5>
+ <ul class="list-group" id="repoFooterLinks">
+ </ul>
+ </div>
+</div>
+<!-- REPO FOOTER ENDS -->
+
+</body>
+</html>
diff --git a/depictions/style.css b/depictions/style.css
new file mode 100644
index 0000000..0bb6513
--- /dev/null
+++ b/depictions/style.css
@@ -0,0 +1,30 @@
+.disable-hover {
+ pointer-events: none;
+}
+
+.link-item {
+ list-style-type: none;
+ padding: 17px 15px;
+ display: block;
+ color: #337ab7 !important;
+ text-align: left;
+}
+
+.link-item:hover {
+ border: 1px solid #ddd;
+ background-color: #f5f5f5;
+}
+
+html.can-touch .link-item:hover{ /* disable hover effect when input is touch */
+ background-color: #fff;
+}
+
+html.can-touch .link-item:active{ /* disable hover effect when input is touch */
+ background-color: #f5f5f5;
+}
+
+.fa {
+ font-size: 16px;
+ margin-left: 5px;
+ margin-right: 10px;
+}
diff --git a/dpkg-scanpackages b/dpkg-scanpackages
new file mode 100644
index 0000000..b5d98e8
--- /dev/null
+++ b/dpkg-scanpackages
@@ -0,0 +1,295 @@
+#!/usr/bin/perl
+#
+# dpkg-scanpackages
+#
+# Copyright © 2006-2015 Guillem Jover <guillem@debian.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+use warnings;
+use strict;
+
+use Getopt::Long qw(:config posix_default bundling no_ignorecase);
+use File::Find;
+
+use Dpkg ();
+use Dpkg::Gettext;
+use Dpkg::ErrorHandling;
+use Dpkg::Util qw(:list);
+use Dpkg::Control;
+use Dpkg::Version;
+use Dpkg::Checksums;
+use Dpkg::Compression::FileHandle;
+
+textdomain('dpkg-dev');
+
+# Do not pollute STDOUT with info messages
+report_options(info_fh => \*STDERR);
+
+my (@samemaint, @changedmaint);
+my @spuriousover;
+my %packages;
+my %overridden;
+my %hash;
+
+my %options = (help => sub { usage(); exit 0; },
+ version => sub { version(); exit 0; },
+ type => undef,
+ arch => undef,
+ hash => undef,
+ multiversion => 0,
+ 'extra-override'=> undef,
+ medium => undef,
+ );
+
+my @options_spec = (
+ 'help|?',
+ 'version',
+ 'type|t=s',
+ 'arch|a=s',
+ 'hash|h=s',
+ 'multiversion|m!',
+ 'extra-override|e=s',
+ 'medium|M=s',
+);
+
+sub version {
+ printf g_("Debian %s version %s.\n"), $Dpkg::PROGNAME, $Dpkg::PROGVERSION;
+}
+
+sub usage {
+ printf g_(
+"Usage: %s [<option>...] <binary-path> [<override-file> [<path-prefix>]] > Packages
+
+Options:
+ -t, --type <type> scan for <type> packages (default is 'deb').
+ -a, --arch <arch> architecture to scan for.
+ -h, --hash <hash-list> only generate hashes for the specified list.
+ -m, --multiversion allow multiple versions of a single package.
+ -e, --extra-override <file>
+ use extra override file.
+ -M, --medium <medium> add X-Medium field for dselect multicd access method
+ -?, --help show this help message.
+ --version show the version.
+"), $Dpkg::PROGNAME;
+}
+
+sub load_override
+{
+ my $override = shift;
+ my $comp_file = Dpkg::Compression::FileHandle->new(filename => $override);
+
+ while (<$comp_file>) {
+ s/\#.*//;
+ s/\s+$//;
+ next unless $_;
+
+ my ($p, $priority, $section, $maintainer) = split(/\s+/, $_, 4);
+
+ if (not defined($packages{$p})) {
+ push(@spuriousover, $p);
+ next;
+ }
+
+ for my $package (@{$packages{$p}}) {
+ if ($maintainer) {
+ if ($maintainer =~ m/(.+?)\s*=\>\s*(.+)/) {
+ my $oldmaint = $1;
+ my $newmaint = $2;
+ my $debmaint = $$package{Maintainer};
+ if (none { $debmaint eq $_ } split m{\s*//\s*}, $oldmaint) {
+ push(@changedmaint,
+ sprintf(g_(' %s (package says %s, not %s)'),
+ $p, $$package{Maintainer}, $oldmaint));
+ } else {
+ $$package{Maintainer} = $newmaint;
+ }
+ } elsif ($$package{Maintainer} eq $maintainer) {
+ push(@samemaint, " $p ($maintainer)");
+ } else {
+ warning(g_('unconditional maintainer override for %s'), $p);
+ $$package{Maintainer} = $maintainer;
+ }
+ }
+ $$package{Priority} = $priority;
+ $$package{Section} = $section;
+ }
+ $overridden{$p} = 1;
+ }
+
+ close($comp_file);
+}
+
+sub load_override_extra
+{
+ my $extra_override = shift;
+ my $comp_file = Dpkg::Compression::FileHandle->new(filename => $extra_override);
+
+ while (<$comp_file>) {
+ s/\#.*//;
+ s/\s+$//;
+ next unless $_;
+
+ my ($p, $field, $value) = split(/\s+/, $_, 3);
+
+ next unless defined($packages{$p});
+
+ for my $package (@{$packages{$p}}) {
+ $$package{$field} = $value;
+ }
+ }
+
+ close($comp_file);
+}
+
+sub process_deb {
+ my ($pathprefix, $fn) = @_;
+
+ my $fields = Dpkg::Control->new(type => CTRL_INDEX_PKG);
+
+ open my $output_fh, '-|', 'dpkg-deb', '-I', $fn, 'control'
+ or syserr(g_('cannot fork for %s'), 'dpkg-deb');
+ $fields->parse($output_fh, $fn)
+ or error(g_("couldn't parse control information from %s"), $fn);
+ close $output_fh;
+ if ($?) {
+ warning(g_("'dpkg-deb -I %s control' exited with %d, skipping package"),
+ $fn, $?);
+ return;
+ }
+
+ my $p = $fields->{'Package'};
+ error(g_('no Package field in control file of %s'), $fn)
+ if not defined $p;
+
+ if (defined($packages{$p}) and not $options{multiversion}) {
+ foreach my $pkg (@{$packages{$p}}) {
+ if (version_compare_relation($fields->{'Version'}, REL_GT,
+ $pkg->{'Version'}))
+ {
+ warning(g_('package %s (filename %s) is repeat but newer ' .
+ 'version; used that one and ignored data from %s!'),
+ $p, $fn, $pkg->{Filename});
+ $packages{$p} = [];
+ } else {
+ warning(g_('package %s (filename %s) is repeat; ' .
+ 'ignored that one and using data from %s!'),
+ $p, $fn, $pkg->{Filename});
+ return;
+ }
+ }
+ }
+
+ warning(g_('package %s (filename %s) has Filename field!'), $p, $fn)
+ if defined($fields->{'Filename'});
+ $fields->{'Filename'} = "$pathprefix$fn";
+
+ my $sums = Dpkg::Checksums->new();
+ $sums->add_from_file($fn);
+ foreach my $alg (checksums_get_list()) {
+ next if %hash and not $hash{$alg};
+
+ if ($alg eq 'md5') {
+ $fields->{'MD5sum'} = $sums->get_checksum($fn, $alg);
+ } else {
+ $fields->{$alg} = $sums->get_checksum($fn, $alg);
+ }
+ }
+ $fields->{'Size'} = $sums->get_size($fn);
+ $fields->{'X-Medium'} = $options{medium} if defined $options{medium};
+
+ push @{$packages{$p}}, $fields;
+}
+
+{
+ local $SIG{__WARN__} = sub { usageerr($_[0]) };
+ GetOptions(\%options, @options_spec);
+}
+
+if (not (@ARGV >= 1 and @ARGV <= 3)) {
+ usageerr(g_('one to three arguments expected'));
+}
+
+my $type = $options{type} // 'deb';
+my $arch = $options{arch};
+%hash = map { $_ => 1 } split /,/, $options{hash} // '';
+
+foreach my $alg (keys %hash) {
+ if (not checksums_is_supported($alg)) {
+ usageerr(g_('unsupported checksum \'%s\''), $alg);
+ }
+}
+
+my ($binarypath, $override, $pathprefix) = @ARGV;
+
+if (not -e $binarypath) {
+ error(g_('binary path %s not found'), $binarypath);
+}
+if (defined $override and not -e $override) {
+ error(g_('override file %s not found'), $override);
+}
+
+$pathprefix //= '';
+
+my $find_filter;
+if ($options{arch}) {
+ $find_filter = qr/_(?:all|${arch})\.$type$/;
+} else {
+ $find_filter = qr/\.$type$/;
+}
+my @archives;
+my $scan_archives = sub {
+ push @archives, $File::Find::name if m/$find_filter/;
+};
+
+find({ follow => 1, follow_skip => 2, wanted => $scan_archives}, $binarypath);
+foreach my $fn (@archives) {
+ process_deb($pathprefix, $fn);
+}
+
+load_override($override) if defined $override;
+load_override_extra($options{'extra-override'}) if defined $options{'extra-override'};
+
+my @missingover=();
+
+my $records_written = 0;
+for my $p (sort keys %packages) {
+ if (defined($override) and not defined($overridden{$p})) {
+ push @missingover, $p;
+ }
+ for my $package (sort { $a->{Version} cmp $b->{Version} } @{$packages{$p}}) {
+ print("$package\n") or syserr(g_('failed when writing stdout'));
+ $records_written++;
+ }
+}
+close(STDOUT) or syserr(g_("couldn't close stdout"));
+
+if (@changedmaint) {
+ warning(g_('Packages in override file with incorrect old maintainer value:'));
+ warning($_) foreach (@changedmaint);
+}
+if (@samemaint) {
+ warning(g_('Packages specifying same maintainer as override file:'));
+ warning($_) foreach (@samemaint);
+}
+if (@missingover) {
+ warning(g_('Packages in archive but missing from override file:'));
+ warning(' %s', join(' ', @missingover));
+}
+if (@spuriousover) {
+ warning(g_('Packages in override file but not in archive:'));
+ warning(' %s', join(' ', @spuriousover));
+}
+
+info(g_('Wrote %s entries to output Packages file.'), $records_written);
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e07586d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Sidia</title> <!-- Change Sidia To Whatever You'd Like -->
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+</head>
+
+<style>
+html {
+ height: 100%;
+}
+
+body {
+ /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#87e0fd+0,53cbf1+40,05abe0+100;Blue+3D+%23+16 */
+background: #87e0fd; /* Old browsers */
+background: -moz-linear-gradient(top, #87e0fd 0%, #53cbf1 40%, #05abe0 100%); /* FF3.6-15 */
+background: -webkit-linear-gradient(top, #87e0fd 0%,#53cbf1 40%,#05abe0 100%); /* Chrome10-25,Safari5.1-6 */
+background: linear-gradient(to bottom, #87e0fd 0%,#53cbf1 40%,#05abe0 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
+filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87e0fd', endColorstr='#05abe0',GradientType=0 ); /* IE6-9 */
+height: 100%;
+ margin: 0;
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ color: white;
+}
+
+.container {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+ text-align: center;
+}
+
+.obsolete_cydia {
+ position: absolute;
+ top: 97%;
+ left: 50%;
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+ text-align: center;
+ opacity: 0.5;
+}
+</style>
+
+<body>
+
+ <div class="container">
+<h1>Huoooooh</h1>
+
+<h3> Seems like you did a little Oopsie</h3>
+
+<h3> Add to Sileo Here: <a href="sileo://source/REPLACETHIS">REPLACETHIS</a></h3>
+
+</div>
+
+
+
+
+
+<div class="obsolete_cydia"> <!-- This is Using Essentialis' "index.html", they added "obsolete_cydia" bullshit. Not Me (Sukarodo) -->
+
+ <h6> Still using Cydia? Tap <a href="cydia://url/https://cydia.saurik.com/api/share#?source=REPLACETHIS">here to add to Cydia</a></h6>
+
+</div>
+</body>
+</html>
diff --git a/repo.xml b/repo.xml
new file mode 100644
index 0000000..0a5abb2
--- /dev/null
+++ b/repo.xml
@@ -0,0 +1,14 @@
+<repo>
+ <footerlinks>
+ <link>
+ <name>Follow me on Twitter</name>
+ <url>https://twitter.com/Sukarodo</url>
+ <iconclass>glyphicon glyphicon-user</iconclass>
+ </link>
+ <link>
+ <name>I want this depiction template</name>
+ <url>https://github.com/sukarodo/sidia</url>
+ <iconclass>glyphicon glyphicon-thumbs-up</iconclass>
+ </link>
+ </footerlinks>
+</repo>
diff --git a/sileo-featured.json b/sileo-featured.json
new file mode 100644
index 0000000..3b268aa
--- /dev/null
+++ b/sileo-featured.json
@@ -0,0 +1,13 @@
+{
+ "class": "FeaturedBannersView",
+ "itemSize": "{296, 148}",
+ "itemCornerRadius": 10,
+ "banners": [
+ {
+ "url": "https://raw.githubusercontent.com/sukarodo/Sidia/master/assets/Banners/RepoHeader.png",
+ "title": "Sample Package",
+ "package": "com.sukarodo.samplepackage",
+ "hideShadow": false
+ }
+ ]
+}
diff --git a/sileodepictions/com.sukarodo.samplepackage/depiction.json b/sileodepictions/com.sukarodo.samplepackage/depiction.json
new file mode 100644
index 0000000..7404c6f
--- /dev/null
+++ b/sileodepictions/com.sukarodo.samplepackage/depiction.json
@@ -0,0 +1,85 @@
+{
+ "minVersion": "0.1",
+ "headerImage": "https://raw.githubusercontent.com/sukarodo/Sidia/master/assets/Banners/RepoHeader.png",
+ "tintColor": "#ffae8e",
+ "tabs": [
+ {
+ "tabname": "Details",
+ "views": [
+ {
+ "class": "DepictionMarkdownView",
+ "markdown": "## TWEAK_NAME\nSHORT_DESCRIPTION"
+ },
+ {
+ "class": "DepictionSeparatorView"
+ },
+ {
+ "title": "Latest Version",
+ "class": "DepictionHeaderView"
+ },
+ {
+ "title": "Version",
+ "text": "VERSION_NUMBER",
+ "class": "DepictionTableTextView"
+ },
+ {
+ "title": "Released",
+ "text": "RELEASE_DATE",
+ "class": "DepictionTableTextView"
+ },
+ {
+ "title": "Price",
+ "text": "PRICE",
+ "class": "DepictionTableTextView"
+ },
+ {
+ "title": "Developer",
+ "text": "DEVELOPER_NAME",
+ "class": "DepictionTableTextView"
+ },
+ {
+ "title": "Website",
+ "action": "WEBSITE_HERE",
+ "class": "DepictionTableButtonView"
+ },
+ {
+ "title": "Use This Template",
+ "action": "https://github.com/sukarodo/Sidia",
+ "class": "DepictionTableButtonView"
+ },
+ {
+ "spacing": 16,
+ "class": "DepictionSpacerView"
+ },
+ {
+ "spacing": 20,
+ "class": "DepictionSpacerView"
+ }
+ ],
+ "class": "DepictionStackView"
+ },
+ {
+ "tabname": "Changelog",
+ "views": [
+ {
+ "title": "VERSION_NUMBER",
+ "useBoldText": true,
+ "useBottomMargin": true,
+ "class": "DepictionSubheaderView"
+ },
+ {
+ "markdown": "\t\n\u2022 UPDATE_DESCRIPTION",
+ "useSpacing": false,
+ "class": "DepictionMarkdownView"
+ },
+ {
+ "markdown": "<small style=\"color: #999; margin-top: -8px;\">Released RELEASE_DATE</small>",
+ "useRawFormat": true,
+ "class": "DepictionMarkdownView"
+ }
+ ],
+ "class": "DepictionStackView"
+ }
+ ],
+ "class": "DepictionTabView"
+}
diff --git a/sileodepictions/js/data-loader-engine.js b/sileodepictions/js/data-loader-engine.js
new file mode 100644
index 0000000..723b728
--- /dev/null
+++ b/sileodepictions/js/data-loader-engine.js
@@ -0,0 +1,78 @@
+function data_loader_engine(contentBlocks,xml) {
+
+ /* Loop through each if the contentBlocks */
+ $.each(contentBlocks, function (key,contentInfo){
+
+ console.log('Processing '+key);
+ console.log(' type= '+contentInfo.type);
+
+ // go out if key element does not exits
+ if (!($(key).length)) {return}
+
+ switch(contentInfo.type) {
+ case "text":
+ var content = $(xml).find(contentInfo.source).text();
+ $(key).html(content)
+ break;
+ case "link":
+ console.log(' url= '+contentInfo.url);
+ console.log(' text= '+contentInfo.text);
+
+ var url = contentInfo.url;
+ var params = [];
+ if (contentInfo.params) {
+ $.each(contentInfo.params, function(){
+ this[1] = escape(this[1]);
+ params[params.length] = this.join('=');
+ });
+ }
+ url = url+'?'+params.join('&');
+ $(key).append( $("<a></a>")
+ .attr("href",url)
+ .text(contentInfo.text)
+ );
+ break;
+ case "list":
+ var list = $(xml).find(contentInfo.source);
+
+
+ if (list.size()==0) {
+ if (contentInfo.emptyListCallback) {
+ contentInfo.emptyListCallback($(key))
+ }
+ } else {
+ if (!!contentInfo.reverseRender) {
+ list = $(list).get().reverse();
+ }
+ $.each(list, function(index,value){
+ var item = $(value).text()
+
+ if (!!contentInfo.reverseRender) {
+ $(key).prepend( $(contentInfo.paragraphElement).html("<p>"+item+"</p>") )
+ } else {
+ $(key).append( $(contentInfo.paragraphElement).html("<p>"+item+"</p>") )
+ }
+ });
+ }
+ break;
+ case "articles":
+ var articles = $(xml).find(contentInfo.source).children();
+ var titleID = 0;
+ $.each(articles,function(index,article){
+ var articleTitle = $(article).find(contentInfo.titleSource).text()
+ $(key).append( $(contentInfo.titleElement).html(articleTitle));
+ var container = $(contentInfo.paragraphContainer).attr("id",++titleID);
+ $(key).append($(container));
+ $.each( $(article).find(contentInfo.paragraphSource), function(index,paragraph){
+ $(container).append( $(contentInfo.paragraphElement).html("<p>"+$(paragraph).text()+"</p>") )
+ }) //paragraph
+ }) //article
+
+ break;
+ case "custom":
+ if (!key) {return}
+ contentInfo.render( $(key), $(xml).find(contentInfo.source) )
+ break;
+ }//switch
+ }); //each
+}
diff --git a/sileodepictions/js/ios_version_check.js b/sileodepictions/js/ios_version_check.js
new file mode 100644
index 0000000..d6c0d8e
--- /dev/null
+++ b/sileodepictions/js/ios_version_check.js
@@ -0,0 +1,126 @@
+/*
+most of the code here is writen by Timon Olsthoorn
+Follow him on -
+Github - https://github.com/tmnlsthrn
+Twitter - @TimonOlsthoorn
+*/
+
+/* Lotus - iosver.js
+ * Copyright (C) 2014-2015 Timon Olsthoorn (tmnlsthrn)
+ */
+
+/*
+ * Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation
+ * and/or other materials provided with the
+ * distribution.
+ * 3. The name of the author may not be used to endorse
+ * or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Adapted from https://github.com/tmnlsthrn/Lotus/blob/master/js/iosver.js
+
+
+// changed const to var for IE9/10 compatibity.
+var VERSION_CHECK_SUPPORTED = "Your iOS version is supported! &#x1f60a;";
+var VERSION_CHECK_NEEDS_UPGRADE = "Requires at least iOS %s &#x1f615;";
+var VERSION_CHECK_UNCONFIRMED = "Not yet tested on iOS %s &#x1f601;";
+var VERSION_CHECK_UNSUPPORTED = "Only compatible with iOS %s to %s &#x1f61e;";
+
+function ios_version_check(minIOS,maxIOS,otherIOS,callBack) {
+ "use strict";
+
+
+ function parseVersionString(version) {
+ var bits = version.split(".");
+ return [
+ parseInt(bits[0], 10),
+ parseInt(bits[1] ? bits[1] : 0, 10),
+ parseInt(bits[2] ? bits[2] : 0, 10)
+ ];
+ }
+
+ function compareVersions(one, two) {
+ // https://gist.github.com/TheDistantSea/8021359
+ for (var i = 0; i < one.length; ++i) {
+ if (two.length == i) {
+ return 1;
+ }
+
+ if (one[i] == two[i]) {
+ continue;
+ } else if (one[i] > two[i]) {
+ return 1;
+ } else {
+ return -1;
+ }
+ }
+
+ if (one.length != two.length) {
+ return -1;
+ }
+
+ return 0;
+ }
+
+ var version = navigator.appVersion.match(/CPU( iPhone)? OS (\d+)_(\d+)(_(\d+))? like/i);
+ if (!version) {
+ return 0;
+ }
+
+ var osVersion = [
+ parseInt(version[2], 10),
+ parseInt(version[3], 10),
+ parseInt(version[4] ? version[5] : 0, 10)
+ ],
+
+ osString = osVersion[0] + "." + osVersion[1] + (osVersion[2] && osVersion[2] != 0 ? "." + osVersion[2] : ""),
+ minString = minIOS,
+ maxString = maxIOS,
+
+ minVersion = parseVersionString(minString),
+ maxVersion = maxString ? parseVersionString(maxString) : null,
+
+ message = VERSION_CHECK_SUPPORTED,
+ isBad = false;
+
+ if (compareVersions(minVersion, osVersion) == 1) {
+ message = VERSION_CHECK_NEEDS_UPGRADE.replace("%s", minString);
+ isBad = true;
+ } else if (maxVersion && compareVersions(maxVersion, osVersion) == -1) {
+ if ("unsupported" == otherIOS) {
+ message = VERSION_CHECK_UNSUPPORTED.replace("%s", minString).replace("%s", maxString);
+ } else {
+ message = VERSION_CHECK_UNCONFIRMED.replace("%s", osString);
+ }
+
+ isBad = true;
+ }
+ callBack(message,isBad);
+
+ return (isBad?-1:1);
+}
diff --git a/sileodepictions/js/jquery.querystring.js b/sileodepictions/js/jquery.querystring.js
new file mode 100644
index 0000000..507d005
--- /dev/null
+++ b/sileodepictions/js/jquery.querystring.js
@@ -0,0 +1,13 @@
+(function($) {
+ $.QueryString = (function(a) {
+ if (a == "") return {};
+ var b = {};
+ for (var i = 0; i < a.length; ++i)
+ {
+ var p=a[i].split('=');
+ if (p.length != 2) continue;
+ b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
+ }
+ return b;
+ })(window.location.search.substr(1).split('&'))
+})(jQuery);