├── .dependabot └── config.yml ├── .editorconfig ├── .github ├── CODEOWNERS ├── labels.yml └── workflows │ ├── gosum.yml │ └── labels.yml ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build.properties ├── build.xml ├── go.mod ├── go.sum ├── main.go └── res ├── app.ico ├── papp.ico ├── papp.manifest ├── papp.png └── setup-mini.bmp /.dependabot/config.yml: -------------------------------------------------------------------------------- 1 | version: 1 2 | update_configs: 3 | - package_manager: "go:modules" 4 | directory: "/" 5 | update_schedule: "daily" 6 | default_labels: 7 | - ":game_die: dependencies" 8 | - ":robot: bot" 9 | automerged_updates: 10 | - match: 11 | dependency_name: "github.com/portapps/portapps" -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs. 2 | # More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_size = 2 9 | indent_style = space 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | 17 | [*.go] 18 | indent_style = tab 19 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @crazy-max 2 | -------------------------------------------------------------------------------- /.github/labels.yml: -------------------------------------------------------------------------------- 1 | ## more info https://github.com/crazy-max/ghaction-github-labeler 2 | - # bot 3 | name: ":robot: bot" 4 | color: "69cde9" 5 | description: "" 6 | - # broken 7 | name: ":zap: broken" 8 | color: "a3090e" 9 | description: "" 10 | - # bug 11 | name: ":bug: bug" 12 | color: "b60205" 13 | description: "" 14 | - # dependencies 15 | name: ":game_die: dependencies" 16 | color: "0366d6" 17 | description: "" 18 | - # documentation 19 | name: ":memo: documentation" 20 | color: "c5def5" 21 | description: "" 22 | - # duplicate 23 | name: ":busts_in_silhouette: duplicate" 24 | color: "cccccc" 25 | description: "" 26 | - # enhancement 27 | name: ":sparkles: enhancement" 28 | color: "0054ca" 29 | description: "" 30 | - # feature request 31 | name: ":bulb: feature request" 32 | color: "0e8a16" 33 | description: "" 34 | - # feedback 35 | name: ":mega: feedback" 36 | color: "03a9f4" 37 | description: "" 38 | - # future maybe 39 | name: ":rocket: future maybe" 40 | color: "fef2c0" 41 | description: "" 42 | - # good first issue 43 | name: ":hatching_chick: good first issue" 44 | color: "7057ff" 45 | description: "" 46 | - # help wanted 47 | name: ":pray: help wanted" 48 | color: "4caf50" 49 | description: "" 50 | - # hold 51 | name: ":hand: hold" 52 | color: "24292f" 53 | description: "" 54 | - # invalid 55 | name: ":no_entry_sign: invalid" 56 | color: "e6e6e6" 57 | description: "" 58 | - # maybe bug 59 | name: ":interrobang: maybe bug" 60 | color: "ff5722" 61 | description: "" 62 | - # needs more info 63 | name: ":thinking: needs more info" 64 | color: "795548" 65 | description: "" 66 | - # question 67 | name: ":question: question" 68 | color: "3f51b5" 69 | description: "" 70 | - # trademark violation 71 | name: ":construction: trademark violation" 72 | color: "cfe524" 73 | description: "" 74 | - # upstream 75 | name: ":eyes: upstream" 76 | color: "fbca04" 77 | description: "" 78 | - # wontfix 79 | name: ":coffin: wontfix" 80 | color: "ffffff" 81 | description: "" 82 | -------------------------------------------------------------------------------- /.github/workflows/gosum.yml: -------------------------------------------------------------------------------- 1 | name: gosum 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'master' 7 | paths: 8 | - '.github/workflows/gosum.yml' 9 | - 'go.mod' 10 | - 'go.sum' 11 | 12 | jobs: 13 | fix: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - 17 | name: Checkout 18 | uses: actions/checkout@v1 19 | - 20 | # https://github.com/actions/checkout/issues/6 21 | name: Fix detached HEAD 22 | run: git checkout ${GITHUB_REF#refs/heads/} 23 | - 24 | name: Tidy 25 | run: | 26 | rm -f go.sum 27 | go mod tidy 28 | - 29 | name: Set up Git 30 | env: 31 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 | run: | 33 | git config user.name "${GITHUB_ACTOR}" 34 | git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" 35 | git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git 36 | - 37 | name: Commit and push changes 38 | run: | 39 | git add . 40 | if output=$(git status --porcelain) && [ ! -z "$output" ]; then 41 | git commit -m 'Fix go modules' 42 | git push 43 | fi 44 | -------------------------------------------------------------------------------- /.github/workflows/labels.yml: -------------------------------------------------------------------------------- 1 | name: labels 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'master' 7 | paths: 8 | - '.github/labels.yml' 9 | - '.github/workflows/labels.yml' 10 | 11 | jobs: 12 | labeler: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - 16 | # https://github.com/actions/checkout 17 | name: Checkout 18 | uses: actions/checkout@v1 19 | - 20 | # https://github.com/crazy-max/ghaction-github-labeler 21 | name: Run Labeler 22 | if: success() 23 | uses: crazy-max/ghaction-github-labeler@v1 24 | env: 25 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Intellij 2 | /.idea 3 | /*.iml 4 | 5 | # App 6 | /.dev 7 | /bin 8 | /vendor 9 | /*.syso 10 | /*.exe 11 | /versioninfo.json 12 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | version: ~> 1.0 2 | 3 | os: windows 4 | language: shell 5 | 6 | import: 7 | - source: portapps/portapps:.travis/configs/install.yml 8 | - source: portapps/portapps:.travis/configs/build.yml 9 | - source: portapps/portapps:.travis/configs/set-version.yml 10 | - source: portapps/portapps:.travis/configs/git-config.yml 11 | - source: portapps/portapps:.travis/configs/deploy.yml 12 | - source: portapps/portapps:.travis/configs/notifs.yml 13 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 7.5.6991.283-14 (2019/03/21) 4 | 5 | * Twitch 7.5.6991.283 6 | * Portapps 1.20.3 7 | 8 | ## 7.5.6774.199-13 (2018/07/24) 9 | 10 | * Twitch 7.5.6774.199 11 | 12 | ## 7.5.6715.42973-12 (2018/05/29) 13 | 14 | * Twitch 7.5.6715.42973 15 | 16 | ## 7.5.6668.295-11 (2018/04/07) 17 | 18 | * Twitch 7.5.6668.295 19 | 20 | ## 7.5.6635.1684-10 (2018/03/02) 21 | 22 | * Twitch 7.5.6635.1684 23 | 24 | ## 7.5.6611.39437-9 (2018/02/12) 25 | 26 | * Twitch 7.5.6611.39437 27 | * Move ia32/x64 to win32/win64 for arch def 28 | * Ability to pass custom args to the portable process 29 | * Move ia32/x64 to win32/win64 for arch def 30 | * Add portapp.json file 31 | * Uncheck run app in setup 32 | 33 | ## 7.5.6604.42919-8 (2018/02/07) 34 | 35 | * Twitch 7.5.6604.42919 36 | 37 | ## 7.5.6591.2326-7 (2018/01/21) 38 | 39 | * Twitch 7.5.6591.2326 40 | 41 | ## 7.5.6585.2139-6 (2018/01/13) 42 | 43 | * Twitch 7.5.6585.2139 44 | * No need to override USERPROFILE env var 45 | 46 | > :warning: **UPGRADE NOTES** 47 | > * Remove `data` folder. 48 | 49 | ## 7.5.6563.2244-5 (2017/12/27) 50 | 51 | * Twitch 7.5.6563.2244 52 | 53 | ## 7.5.6557.923-4 (2017/12/14) 54 | 55 | * Twitch 7.5.6557.923 56 | 57 | ## 7.5.6543.2605-3 (2017/12/04) 58 | 59 | * Twitch 7.5.6543.2605 60 | 61 | ## 7.5.6529.932-2 (2017/11/24) 62 | 63 | * Move app to root folder to avoid data deletion 64 | * Remove Uninstall exe 65 | * Disable debug mode 66 | 67 | ## 7.5.6529.932-1 (2017/11/23) 68 | 69 | * Initial version based on Twitch 7.5.6529.932. 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-2020 CrazyMax 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | GitHub release 5 | Total downloads 6 | Build Status 7 | Go Report 8 | Code Quality 9 |
Become a sponsor 10 | Donate Paypal 11 |

12 | 13 | ## Notice of Non-Affiliation and Disclaimer 14 | 15 | Portapps is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Twitch™, or any of its subsidiaries or its affiliates. 16 | 17 | The official Twitch™ website can be found at https://app.twitch.tv/. 18 | 19 | The name Twitch™ as well as related names, marks, emblems and images are registered trademarks of their respective owners. 20 | 21 | ## About 22 | 23 | Twitch™ portable app made with 🚀 [Portapps](https://portapps.io).
24 | Documentation and downloads can be found on https://portapps.io/app/twitch-portable/ 25 | 26 | ## How can I help ? 27 | 28 | All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon: You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) :clap: or by making a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! :rocket: 29 | 30 | Thanks again for your support, it is much appreciated! :pray: 31 | 32 | ## License 33 | 34 | MIT. See `LICENSE` for more details.
35 | Rocket icon credit to [Squid Ink](http://thesquid.ink). 36 | -------------------------------------------------------------------------------- /build.properties: -------------------------------------------------------------------------------- 1 | # Portapps 2 | core.dir = ../portapps 3 | 4 | # App 5 | app = twitch 6 | app.name = Twitch 7 | app.type = untouched 8 | app.version = 7.5.6774.199 9 | app.release = 13 10 | app.homepage = https://app.twitch.tv 11 | 12 | # Portable app 13 | papp.id = ${app}-portable 14 | papp.guid = {BD712FB7-C9EC-4CFE-BE17-2ED476E7AA13} 15 | papp.name = ${app.name} Portable 16 | papp.desc = ${app.name} portable on Windows by Portapps 17 | papp.url = https://github.com/portapps/${papp.id} 18 | papp.folder = Bin 19 | 20 | # Official artifacts 21 | atf.id = Twitch 22 | atf.win32.filename = TwitchSetup-win32-${app.version} 23 | atf.win32.ext = .7z 24 | atf.win32.url = https://github.com/portapps/untouched/releases/download/twitch-${app.version}/TwitchSetup.7z 25 | atf.win32.assertextract = Bin/Twitch.exe 26 | -------------------------------------------------------------------------------- /build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/portapps/twitch-portable 2 | 3 | go 1.12 4 | 5 | require github.com/portapps/portapps v1.31.0 6 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw= 2 | github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= 3 | github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= 4 | github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= 5 | github.com/ilya1st/rotatewriter v0.0.0-20171126183947-3df0c1a3ed6d h1:OGuVAVny/97zsQ5BWg0mOjzTBBD9zR+Lug1co144+rU= 6 | github.com/ilya1st/rotatewriter v0.0.0-20171126183947-3df0c1a3ed6d/go.mod h1:S1q6q+21PRGd0WRX+fHjQ+TOe3CgpSv7zgCWnZcbxCs= 7 | github.com/josephspurrier/goversioninfo v0.0.0-20190209210621-63e6d1acd3dd h1:KikNiFwUO3QLyeKyN4k9yBH9Pcu/gU/yficWi61cJIw= 8 | github.com/josephspurrier/goversioninfo v0.0.0-20190209210621-63e6d1acd3dd/go.mod h1:eJTEwMjXb7kZ633hO3Ln9mBUCOjX2+FlTljvpl9SYdE= 9 | github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= 10 | github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 11 | github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= 12 | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 13 | github.com/portapps/portapps v1.31.0 h1:qYMTjndXG+ZXV1oMwVzfIs9UTY1ZAyffDuyPRBy8A/4= 14 | github.com/portapps/portapps v1.31.0/go.mod h1:RQnzM0SAi1UA6ot+bk6aJlwJbo/f36oPhUnGSC1bISo= 15 | github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= 16 | github.com/rs/zerolog v1.17.2 h1:RMRHFw2+wF7LO0QqtELQwo8hqSmqISyCJeFeAAuWcRo= 17 | github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= 18 | github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= 19 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 20 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 21 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 22 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 23 | golang.org/x/sys v0.0.0-20190416152802-12500544f89f h1:1ZH9RnjNgLzh6YrsRp/c6ddZ8Lq0fq9xztNOoWJ2sz4= 24 | golang.org/x/sys v0.0.0-20190416152802-12500544f89f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 25 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 26 | golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 27 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 28 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= 29 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 30 | gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= 31 | gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 32 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | //go:generate go install -v github.com/josephspurrier/goversioninfo/cmd/goversioninfo 2 | //go:generate goversioninfo -icon=res/papp.ico -manifest=res/papp.manifest 3 | package main 4 | 5 | import ( 6 | "os" 7 | 8 | . "github.com/portapps/portapps" 9 | "github.com/portapps/portapps/pkg/utl" 10 | ) 11 | 12 | var ( 13 | app *App 14 | ) 15 | 16 | func init() { 17 | var err error 18 | 19 | // Init app 20 | if app, err = New("twitch-portable", "Twitch"); err != nil { 21 | Log.Fatal().Err(err).Msg("Cannot initialize application. See log file for more info.") 22 | } 23 | } 24 | 25 | func main() { 26 | app.AppPath = utl.PathJoin(app.RootPath, "Bin") 27 | app.DataPath = "" 28 | app.Process = utl.PathJoin(app.AppPath, "Twitch.exe") 29 | app.WorkingDir = app.AppPath 30 | 31 | // On exit 32 | defer func() { 33 | // Remove tmp path 34 | os.RemoveAll(utl.PathJoin(utl.RoamingPath(), "Twitch")) 35 | }() 36 | 37 | app.Launch(os.Args[1:]) 38 | } 39 | -------------------------------------------------------------------------------- /res/app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/portapps/twitch-portable/409f902cee49a697278dabd54a96aa0a410eb413/res/app.ico -------------------------------------------------------------------------------- /res/papp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/portapps/twitch-portable/409f902cee49a697278dabd54a96aa0a410eb413/res/papp.ico -------------------------------------------------------------------------------- /res/papp.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/papp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/portapps/twitch-portable/409f902cee49a697278dabd54a96aa0a410eb413/res/papp.png -------------------------------------------------------------------------------- /res/setup-mini.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/portapps/twitch-portable/409f902cee49a697278dabd54a96aa0a410eb413/res/setup-mini.bmp --------------------------------------------------------------------------------