├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug.md
│ ├── ideas.md
│ └── python-question.md
├── pull_request_template.md
└── workflows
│ ├── community.yml
│ └── stale.yml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
└── all-python-codes
├── bagels
├── README.md
└── main.py
├── bulk-file-renamer
├── README.md
└── main.py
├── countdown-timer
├── README.md
├── screenshot_1.png
├── screenshot_2.png
└── timer.py
├── dictionary-algo
├── README.md
├── data.json
└── dictionary.py
├── e-mail-scrapper
├── README.md
├── email.py
├── emaildb.py
└── emailfile.txt
├── git-pics-scrapper
├── README.md
└── gitpics.py
├── image-retrieval
├── README.md
└── image-retrieval.py
├── longest-word-in-text-file
├── README.md
├── longestWordInFile.py
└── script_screenshot.png
├── number-guessing-game
├── README.md
├── numberGuessingGame.py
└── script_screenshot.png
├── password-generator
├── password-generator-1
│ ├── README.md
│ ├── my_password_generator.py
│ ├── screenshot_1.png
│ ├── screenshot_2.png
│ └── screenshot_3.png
└── password-generator-2
│ ├── README.md
│ ├── generate_password.py
│ ├── screenshot_1.png
│ ├── screenshot_2.png
│ └── screenshot_3.png
├── password-validator
├── README.md
├── main.py
├── screenshot_1.png
├── screenshot_2.png
└── screenshot_3.png
├── retri-itunes-data
├── README.md
├── itunesdata.xml
├── tracks.py
└── tracksc.py
└── retrieve-school-data
├── README.md
├── itunesdata.xml
├── roster_data.json
├── rosterdb.py
└── rosters.py
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | custom: ["https://paystack.com/pay/chryzhub"]
4 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug
3 | about: Create a bug-report to help us address errors in the repo.
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Description**
11 |
12 |
13 |
14 | **Stack**
15 |
16 | Project stack or language (eg. Frontend):
17 |
18 | **Working Environment**
19 |
20 | Operating System (eg Linux):
21 |
22 | Browser (eg. Chrome):
23 |
24 | Device (eg. Laptop or Phone):
25 |
26 | **Screenshots**
27 |
28 | Please add a screenshot if applicable
29 |
30 | [Optional] **Additional Context**
31 |
32 | Add any other context about the problem here.
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/ideas.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Ideas
3 | about: Bringing up ideas for the smooth running of the community
4 | title: 'I have an idea'
5 | labels: 'ideas'
6 | assignees: 'chryzcodez'
7 |
8 | ---
9 |
10 |
11 | **Description**
12 |
13 | A brief description of the ideas:
14 |
15 | **Goals**
16 |
17 | The aim and objectives of the ideas:
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/python-question.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Technical question
3 | about: I am stuck please can someone help
4 | title: ''
5 | labels: question
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Description**
11 |
12 | A brief description of the question or issue, also include what you tried and what didn't work:
13 |
14 | **Stack**
15 |
16 | Project stack or language (Python & frameworks):
17 |
18 | **Working Environment**
19 |
20 | Operating System (eg Windows):
21 |
22 |
23 | **Screenshots**
24 |
25 | Please add a screenshot if applicable
26 |
27 | [Optional] **Additional Context**
28 |
29 | Add any other context about the problem here.
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | #ISSUE-NO
2 |
3 | #### What does this PR do?
4 |
5 | #### Description of Task to be completed?
6 |
7 | #### How can this be manually tested?
8 |
9 | #### Any background context you want to provide?
10 |
11 | #### What is the relevant issue link?
12 |
13 | #### Screenshots (if appropriate)
14 |
15 | #### Questions:
16 |
17 |
--------------------------------------------------------------------------------
/.github/workflows/community.yml:
--------------------------------------------------------------------------------
1 | on:
2 | issues:
3 | types: [opened]
4 | pull_request_target:
5 | types: [opened]
6 |
7 | jobs:
8 | welcome:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/first-interaction@v1
12 | with:
13 | repo-token: ${{ secrets.GITHUB_TOKEN }}
14 | issue-message: '
It''s great having you contribute to this community
Thank you for raising an Issue! Welcome to Chryz-Hub If you are willing to join the community, connect via the Chryz-Hub Connect WebsiteYou can make a pratice pull request and also add your name been a member of the community ~~ here.
'
15 | pr-message: 'It''s great having you contribute to this community
Thank you for creating a Pull Request! Welcome to Chryz-Hub If you are willing to join the community, connect via Chryz-Hub Connect WebsiteYou can make a pratice pull request and also add your name been a member of the community ~~ here.
'
16 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: 'Close stale issues and PRs'
2 | on:
3 | schedule:
4 | - cron: '30 1 * * *'
5 |
6 | jobs:
7 | stale:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/stale@v3
11 | with:
12 | repo-token: ${{ secrets.GITHUB_TOKEN }}
13 | stale-issue-label: 'stale'
14 | stale-pr-label: 'stale'
15 | stale-issue-message: 'This issue is stale because it has been open 20 days with no activity. Remove stale label or comment or this will be closed in 10 days.'
16 | stale-pr-message: 'This PR is stale because it has been open 20 days with no activity. Remove stale label or comment or this will be closed in 20 days.'
17 | close-issue-message: 'This issue was closed because it has been stalled for 15 days with no activity.'
18 | close-pr-message: 'This PR was closed because it has been stalled for 15 days with no activity.'
19 | days-before-issue-stale: 20
20 | days-before-pr-stale: 20
21 | days-before-issue-close: 15
22 | days-before-pr-close: 15
23 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at chryzhub@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | When contributing to this repository, please first discuss the change you wish to make via issue,
4 | email, or any other method with the owners of this repository before making a change.
5 |
6 | Please note we have a [CODE of CONDUCT](https://github.com/chryz-hub/py-newbies-project/blob/main/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
7 |
8 |
9 | ## Pull Request Process
10 |
11 | 1. Ensure any install or build dependencies are removed before the end of the layer when doing a
12 | build.
13 | 2. Update the README.md with details of changes to the interface, this includes new environment
14 | variables, exposed ports, useful file locations and container parameters.
15 | 3. Increase the version numbers in any examples files and the README.md to the new version that this
16 | Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
17 | 4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
18 | do not have permission to do that, you may request the second reviewer to merge it for you.
19 |
20 | ## Commit Message Guidelines 😎
21 |
22 | In order to make git commit messages **easier to read** and faster to reason about, we follow some guidelines on most commits to keep the **format predictable**. Check [Conventional Commits specification](https://conventionalcommits.org) for more information about our guidelines.
23 |
24 | **Examples**:
25 |
26 | ```
27 | docs(changelog): update changelog to beta.5
28 | docs: add API documentation to the bot
29 | test(server): add cache tests to the movie resource
30 | fix(web): add validation to phone input field
31 | fix(web): remove avatar image from being required in form
32 | fix(release): need to depend on latest rxjs and zone.js
33 | ```
34 |
35 | ### Type
36 |
37 | Must be one of the following:
38 |
39 | - **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm).
40 | - **ci**: Changes to our CI configuration files and scripts (example scopes: Circle, BrowserStack, SauceLabs)
41 | - **docs**: Documentation only changes
42 | - **feat**: A new feature
43 | - **fix**: A bug fix
44 | - **perf**: A code change that improves performance
45 | - **refactor**: A code change that neither fixes a bug nor adds a feature
46 | - **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
47 | - **test**: Adding missing tests or correcting existing tests
48 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Chryz-Hub
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 | # Py-Projects
2 |
3 |
4 |
5 |
6 |
7 |
8 | This is a repository where codes, programs and projects written in python language are brought together for the growth, fast learning and also the creating of hand-on-projects experiences for codenewbies(beginners) in the language `PYTHON`
9 |
10 | __Feel free to create an [issue](https://github.com/chryz-hub/py-tutorials/issues) or make a Pull Request. Please see our [Contributing file](https://github.com/chryz-hub/py-tutorials/blob/master/CONTRIBUTING.md)
11 | first and our [code of conduct](https://github.com/chryz-hub/py-tutorials/blob/master/CODE_OF_CONDUCT.md), before making new commits or opening a PR, we appreciate it!
12 | In order for us not to ignore your effort, please check well not to make a duplicate of a PR(contribution)/ issue!__
13 |
14 | ## For your contributions to be merged;
15 |
16 | - Put the project, codes or program in a directory(like a repo)
17 | - Add a readme file; Explaining major things
18 | - How to run the programs
19 | - Neccesary links either leading to an article, a video or a documentation that is realated to the codes available
20 | - Explain the functions of each codes available in the repo/ dir
21 | - If neccesary add snippets of codes explaining things difficult to understand
22 | - Writing of comments in the codes would be of real help
23 | - Screenshot(s) of the program output (optional)
24 |
25 | * Check this out as a [sample](https://github.com/chryzcodez/retrieve-json-data)
26 |
27 | ## Content
28 |
29 | # Projects
30 |
31 | SR No | Project | Author
32 | --- | --- | ---
33 | 1 | [Bulk File Renamer](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/bulk-file-renamer) | [Olanrewaju Alaba](https://github.com/chryzcodez)
34 | 2 | [Dictionary Algorithm](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/dictionary-algo)| [Olanrewaju Alaba](https://github.com/chryzcodez)
35 | 3 | [Password Generator](https://github.com/Mannuel25/py-projects/tree/master/all-python-codes/password-generator) | [Emmanuel Tanimowo](https://github.com/Mannuel25)
36 | 4 | [E-mail Scrapper](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/e-mail-scrapper) | [Olanrewaju Alaba](https://github.com/chryzcodez)
37 | 5 | [Git-Pics-Scrapper](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/git-pics-scrapper) | [Olanrewaju Alaba](https://github.com/chryzcodez)
38 | 6 | [Image Retrieval](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/image-retrieval) | [Olanrewaju Alaba](https://github.com/chryzcodez)
39 | 7 | [Itunes Data Retrieval](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/retri-itunes-data) | [Olanrewaju Alaba](https://github.com/chryzcodez)
40 | 8 | [School Data Retrieval](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/retrieve-school-data) | [Olanrewaju Alaba](https://github.com/chryzcodez)
41 | 9 | [Number Guessing Game](https://github.com/chryz-hub/py-projects/tree/master/all-python-codes/number-guessing-game) | [Emmanuel Tanimowo](https://github.com/Mannuel25)
42 | 10 | [Countdown Timer](https://github.com/Mannuel25/py-projects/tree/master/all-python-codes/countdown-timer) | [Emmanuel Tanimowo](https://github.com/Mannuel25)
43 | 11 | [Longest Word In Text File](https://github.com/Mannuel25/py-projects/tree/master/all-python-codes/longest-word-in-text-file) | [Emmanuel Tanimowo](https://github.com/Mannuel25)
44 | 12 | [Password Validator](https://github.com/Mannuel25/py-projects/tree/master/all-python-codes/password-validator) | [Emmanuel Tanimowo](https://github.com/Mannuel25)
45 |
--------------------------------------------------------------------------------
/all-python-codes/bagels/README.md:
--------------------------------------------------------------------------------
1 | # Bagels - Detective Logic Game
2 |
3 | - ## [main.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/bagels/main.py)
4 |
5 | Bagels, a detective logic game, you must guess a secret number three-digit number based on clues. The game offers one of the following hints in response to your guess.
6 |
7 | "Pico" when your guess has a correct digit in the wrong place, "Fermi" when your guess has a correct digit in the corect place, and "Bagels" if your guess has no corect digit.
8 |
9 | You have 10 tries to guess the secret number
10 |
11 | Code/program owned by:
12 | [Ibrahim Raimi](https://github.com/ibrahimraimi)
--------------------------------------------------------------------------------
/all-python-codes/bagels/main.py:
--------------------------------------------------------------------------------
1 | from random import shuffle
2 |
3 | NUM_DIGIT = 3
4 | MAX_GUESSES = 10
5 |
6 |
7 | def main(): # main game
8 | print(
9 | f"""
10 | Bagels, a detective logic game.
11 | By Ibrahim raimi
12 |
13 | I am thinking of a number {NUM_DIGIT} number with no repeted digits.
14 | Try to guess what it is. Here re some clues:
15 | When i say: That means:
16 | Pico One digit is correct but in the wrong position.
17 | Fermi One digit is correct and in the right position.
18 | Bagels No digit is correct.
19 |
20 | For example, if the secret number was 248 and your guess was 843, the clues would be Fermi Pico
21 | """
22 | )
23 |
24 | while True: # main game loop
25 | secret_num = get_secret_num()
26 | print("I have though of a number")
27 | print(f"You have {MAX_GUESSES} guesses to get it.")
28 |
29 | num_guesses = 1
30 | while num_guesses <= MAX_GUESSES:
31 | guess = ""
32 |
33 | # keep looping until they enter a valid guess:
34 | while len(guess) != NUM_DIGIT or not guess.isdecimal():
35 | print(f"Guess {num_guesses}")
36 | guess = input("> ")
37 |
38 | clues = get_clues(guess, secret_num)
39 | print(clues)
40 | num_guesses += 1
41 |
42 | if guess == secret_num:
43 | break
44 |
45 | if num_guesses > MAX_GUESSES:
46 | print("You ran out of guesses.")
47 | print(f"The nswer was {secret_num}")
48 | break
49 |
50 | print("Do you want to play again? (yes or no)")
51 | if not input("> ").lower().startswith("y"):
52 | break
53 | print("Thanks for playing")
54 |
55 |
56 | def get_secret_num():
57 | """ returns a string made up of {NUM_DIGITS} uniqe random digits """
58 | numbers = list("0123456789") # create a list of digits 0 - 9
59 | shuffle(numbers) # shuffle them into random order
60 |
61 | """ get the first {NUM_DIGITS} digits in the list for the secret number """
62 | secret_num = ""
63 | for i in range(NUM_DIGIT):
64 | secret_num += str(numbers[i])
65 | return secret_num
66 |
67 |
68 | def get_clues(guess, secret_num):
69 | """ returns a string with the pico, fermi, bagels clues for a guess and secret number pair """
70 | if guess == secret_num:
71 | return "You got it!"
72 |
73 | clues = []
74 |
75 | for i in range(len(guess)):
76 | if guess[i] == secret_num[i]:
77 | # a correct digit is in the correct place
78 | clues.append("Fermi")
79 | elif guess[i] in secret_num:
80 | # a correct digit is in the incorrect place
81 | clues.append("Pico")
82 |
83 | if len(clues) == 0:
84 | return "Bagels" # there are no correct digit at all
85 | else:
86 | # sort the clues into alphabetical order so their original order does not give information away
87 | clues.sort()
88 | return " ".join(clues)
89 |
90 |
91 | if __name__ == "__main__":
92 | main()
93 |
--------------------------------------------------------------------------------
/all-python-codes/bulk-file-renamer/README.md:
--------------------------------------------------------------------------------
1 | # Bulk File Renamer
2 |
3 | - ## [main.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/bulk-file-renamer/main.py)
4 |
5 | This is a python code that helps you to reduce the stress of renaming a bulk of file present in a folder.
6 | The codes would help yo to change the files to right path and name in a chronological format.
7 |
8 | You don't need to really bother much on these because the code has been well commented out for you
9 | to easily understand what it is all about.
10 |
11 | Code/program owned by:
12 | [@chryzcodez](https://github.com/chryzcodez)
13 |
--------------------------------------------------------------------------------
/all-python-codes/bulk-file-renamer/main.py:
--------------------------------------------------------------------------------
1 | # import os for python to access your device and operating system
2 | import os
3 |
4 | def main():
5 | # get a variable
6 | i = 0
7 | file_path = # ex 'C:/Users/chryz/Desktop/try/mysite/polls/templates/polls/'
8 | for file_name in os.listdir(file_path)
9 | my_files = file_name + str(i) # you can add any extension to this depending on your files
10 | # if it is a folder full of python codes ---------- my_files = file_name + str(i) + '.py'--------------
11 |
12 | #sorting out the renaming of the files
13 | my_source = file_path + file_name
14 | my_files = file_path + my_files
15 | os.rename(my_source, my_files)
16 | # define the variable more better to suit our purpose
17 | i =+ 1
18 |
19 | # calling the defined function
20 | if __name__ = '__main__' :
21 | main()
22 |
--------------------------------------------------------------------------------
/all-python-codes/countdown-timer/README.md:
--------------------------------------------------------------------------------
1 | # Countdown Timer
2 |
3 | This program takes in the number of seconds to countdown and displays a message when the time elapses.
4 |
5 | # Prerequisites
6 |
7 | It requires no prerequisites, you only need to run the script. If you don't have Python installed, you can visit [here](https://www.python.org/downloads/) to download Python.
8 |
9 | # How to run the script
10 |
11 | Running the script is pretty easy, open a terminal in the folder where your script is located and run the following command :
12 |
13 | `python timer.py`
14 |
15 | # Sample use of the script
16 |
17 | 
18 |
19 | 
20 |
21 | # Author's name
22 |
23 | [Tanimowo Emmanuel](https://github.com/Mannuel25)
24 |
--------------------------------------------------------------------------------
/all-python-codes/countdown-timer/screenshot_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/countdown-timer/screenshot_1.png
--------------------------------------------------------------------------------
/all-python-codes/countdown-timer/screenshot_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/countdown-timer/screenshot_2.png
--------------------------------------------------------------------------------
/all-python-codes/countdown-timer/timer.py:
--------------------------------------------------------------------------------
1 | import time
2 |
3 | def countdownTimer():
4 | # get the number of seconds
5 | no_of_secs = int(input('How many seconds?: '))
6 | while no_of_secs:
7 | if no_of_secs < 60:
8 | # calculate the number of hours, minutes and seconds
9 | hrs = no_of_secs // 3600
10 | mins = no_of_secs // 60
11 | secs = no_of_secs % 60
12 | # format the hours, minutes
13 | # and seconds to be displayed
14 | timer = '%02d:%02d:%02d' %(hrs, mins, secs)
15 | print(timer, end='\r')
16 | # delay execution of code by one second
17 | time.sleep(1)
18 | # countdown the number of seconds
19 | no_of_secs -= 1
20 | elif 60 <= no_of_secs < 3600:
21 | # calculate the number of hours, minutes and seconds
22 | hrs = no_of_secs // 3600
23 | mins = no_of_secs // 60
24 | secs = no_of_secs % 60
25 | # format the hours, minutes
26 | # and seconds to be displayed
27 | timer = '%02d:%02d:%02d' %(hrs, mins, secs)
28 | print(timer, end='\r')
29 | # delay execution of code by one second
30 | time.sleep(1)
31 | # countdown the number of seconds
32 | no_of_secs -= 1
33 | elif 3600 <= no_of_secs <= 86400:
34 | # calculate the number of hours, minutes and seconds
35 | hrs = no_of_secs // 3600
36 | mins = (no_of_secs % 3600) // 60
37 | secs = (no_of_secs % 3600) % 60
38 | # format the hours, minutes
39 | # and seconds to be displayed
40 | timer = '%02d:%02d:%02d' %(hrs, mins, secs)
41 | print(timer, end='\r')
42 | # delay execution of code by one second
43 | time.sleep(1)
44 | # countdown the number of seconds
45 | no_of_secs -= 1
46 | print('Time Up!')
47 |
48 | countdownTimer()
--------------------------------------------------------------------------------
/all-python-codes/dictionary-algo/README.md:
--------------------------------------------------------------------------------
1 | # Dictionary Algorithm
2 | We would not be explaining explicitly on this becase the codes are well commented for you to understand what it is all about.
3 |
4 | - ## [Dictionary.py](https://github.com/chryzcodez/py-projects/blob/master/all-python-codes/dictionary-algo/dictionary.py)
5 | This is the python code/algorithm that workes through getting and parsing a wordd to get it's specific defination.
6 | - ## [Data.json](https://github.com/chryzcodez/py-projects/blob/master/all-python-codes/dictionary-algo/data.json)
7 | This is the json file where words are stored, not complete as the words embedded in a real dictionary but it contains necessary, important and enough words and it's specific
8 | definations to act as a dictionary. You can view this file directly here on github because of how large it is. So, do well to download it on your machine.
9 |
--------------------------------------------------------------------------------
/all-python-codes/dictionary-algo/dictionary.py:
--------------------------------------------------------------------------------
1 | # import the json library
2 | import json
3 | # library for close matchng of words
4 | from difflib import get_close_matches
5 |
6 | # load a json file
7 | data = json.load(open("data.json"))
8 |
9 | # defines the function translate() in a more suitable way
10 | def translate(word):
11 | word = word.lower()
12 | # using conditions to get the proper definations despite the manner of input
13 | if word in data:
14 | return data[word]
15 | elif word.title() in data :
16 | return data[word.title()]
17 | elif word.upper() in data :
18 | return data[word.upper()]
19 | elif len(get_close_matches(word, data.keys())) > 0 :
20 | # getting the closest word and the meaning
21 | print("did you mean %s instead" %get_close_matches(word, data.keys())[0])
22 | decide = input("Press yes or no: ")
23 | if decide == "yes":
24 | return data[get_close_matches(word, data.keys())[0]]
25 | elif decide == "no":
26 | return ("-------The word does not exist!-------")
27 | else:
28 | return("----You have entered the wrong input!, please enter yes or no ----")
29 | else:
30 | print("-----You have entered the wrong word, please check it again!-----")
31 |
32 |
33 | # For the user
34 | word = input("Enter the word you want to search for: ")
35 | #called out the function we defined above
36 | output= translate(word)
37 | #if the defination of a word is more than one, it is a list automatically
38 | #Iteration for the definations in a list to be seperated and more visible for people to understand
39 | if type(output) == list :
40 | for item in output :
41 | print(item)
42 | else:
43 | print(output)
44 |
--------------------------------------------------------------------------------
/all-python-codes/e-mail-scrapper/README.md:
--------------------------------------------------------------------------------
1 | # E-mail Scrapper
2 | This is a python code parses through a list of email address and scrapes a specific segment of the e-mail address, you can tweak it to scrape an aspect of the e-mail
3 | address you want!
4 |
5 | You don't have to worry much the codes are well commented for you to really understand what it's all about
6 |
7 |
8 | - ## [email.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/e-mail-scrapper/email.py)
9 | This is a pure python code that does the job of scrapping the e-mail address list and providing out your desired output
10 |
11 | - ## [emaildb.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/e-mail-scrapper/emaildb.py)
12 | This is a python code with sqlite database. This is same as `email.py` except the feature of storing your desired output (e-mail address)
13 | in a database.
14 |
15 | - ## [emailfile.txt](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/e-mail-scrapper/emailfile.txt)
16 | This is a resources which has list of email for testing and tweaking your codes!
17 |
18 | Code/program owned by:
19 | [@chryzcodez](https://github.com/chryzcodez)
20 |
--------------------------------------------------------------------------------
/all-python-codes/e-mail-scrapper/email.py:
--------------------------------------------------------------------------------
1 | # file input for users
2 | fname = input('Enter file name: ')
3 | # if the enter key is pressed 'emailfile.txt' is the file automatically
4 | if (len(fname) < 1): fname = 'emailfile.txt'
5 | #file handle
6 | fh = open(fname)
7 | # a loop that prints out the email
8 | for line in fh:
9 | # parsing through
10 | if not line.startswith('From '): continue
11 | pieces = line.split()
12 | email = pieces[1]
13 | info1 = email.find('@')
14 | info2 = email.find(' ', info1)
15 | org = email[info1 + 1:info2]
16 |
17 | print (org)
18 |
--------------------------------------------------------------------------------
/all-python-codes/e-mail-scrapper/emaildb.py:
--------------------------------------------------------------------------------
1 | # download sqlite browser to really run this program
2 | import sqlite3
3 | # create an sqlite database called 'emailc' and a database handle = cur
4 | conn = sqlite3.connect('emailc.sqlite')
5 | cur = conn.cursor()
6 |
7 | # make a table
8 | cur.execute('DROP TABLE IF EXISTS Counts')
9 |
10 | # making column in the table
11 | cur.execute('''
12 | CREATE TABLE Counts (org TEXT, count INTEGER)''')
13 | # file input for users
14 | fname = input('Enter file name: ')
15 | # if the enter key is pressed 'emailfile.txt' is the file automatically
16 | if (len(fname) < 1): fname = 'mbox.txt'
17 | #file handle
18 | fh = open(fname)
19 | # a loop that prints out the email org
20 | for line in fh:
21 | # parsing through
22 | if not line.startswith('From '): continue
23 | pieces = line.split()
24 | email = pieces[1]
25 | info1 = email.find('@')
26 | info2 = email.find(' ', info1)
27 | org = email[info1 + 1:info2]
28 |
29 | #inserting the email org into the sql database
30 | cur.execute('SELECT count FROM Counts WHERE org = ? ', (org,))
31 | row = cur.fetchone()
32 | if row is None:
33 | cur.execute('''INSERT INTO Counts (org, count)
34 | VALUES (?, 1)''', (org,))
35 | # updating the count if same org is present in the database
36 | else:
37 | cur.execute('UPDATE Counts SET count = count + 1 WHERE org = ?',
38 | (org,))
39 | conn.commit()
40 |
41 |
42 | # https://www.sqlite.org/lang_select.html
43 | #the top ten email org avialable
44 | sqlstr = 'SELECT org, count FROM Counts ORDER BY count DESC LIMIT 10'
45 |
46 | #looping to print them out
47 | for row in cur.execute(sqlstr):
48 | print(str(row[0]), row[1])
49 |
50 | cur.close()
51 |
--------------------------------------------------------------------------------
/all-python-codes/git-pics-scrapper/README.md:
--------------------------------------------------------------------------------
1 | # Git-Pics-Scrapper
2 |
3 | - ## [gitpics.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/git-pics-scrapper/gitpics.py)
4 | This is a python code that sends a request to GitHub user URL and parses the through the codes of that parses and prints out the URL of that GitHub user profile image.
5 |
6 | ## To get started please make sure you have these installed on your device
7 |
8 | ### PIP
9 | PIP is a package manager for Python packages or modules, it is the standard package manager for Python. It allows you to install and manage additional packages that are not part of the Python standard library.
10 |
11 | If you would love to watch a video on how pip is installed. [Check out this video](https://www.youtube.com/watch?v=Ko9b_vC6XY0)
12 |
13 | You can check if you have it properly installed on your device by writing this code on your command terminal(CMD) `pip --version` If it shows the version of pip, example...something like this `pip 21.0.1 from c:\python\392\lib\site-packages\pip (python 3.9)` might not necessary be like mine but something like this, then
14 | you have it properly installed on your device but if it shows something like error, then it is not properly installed.
15 |
16 | ## After that, then you need to install these libraries
17 | - `pip install requests`
18 | - and `pip install bs4`
19 |
20 | Without these the python code would not run the way it should!
21 | Code/program owned by:
22 | [@chryzcodez](https://github.com/chryzcodez)
23 |
--------------------------------------------------------------------------------
/all-python-codes/git-pics-scrapper/gitpics.py:
--------------------------------------------------------------------------------
1 | # I hope you read through the readme file, if you did not please go back and check through it.
2 |
3 | import requests
4 | from bs4 import BeautifulSoup as bs
5 |
6 | # input for a github user
7 | github_user = input('Enter a github user: ')
8 | # concatenate the input with github url
9 | url = 'https://github.com/'+github_user
10 | #Request for the url
11 | r = requests.get(url)
12 | #use BeautifulSoup to clean and parse the url
13 | soup = bs(r.content, 'html.parser')
14 | #parse and seatch of the url that renders the github profile image
15 | profile_img = soup.find('img', {'alt' : 'Avatar'})['src']
16 | #print out the image. The print out would only give you the url to the github profile image
17 | print(profile_img)
18 |
--------------------------------------------------------------------------------
/all-python-codes/image-retrieval/README.md:
--------------------------------------------------------------------------------
1 | # [image-retrieval.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/image-retrieval/image-retrieval.py)
2 |
3 |
4 | This is a python code to retrieve an image from the internet, a website specifically. The python code is well commented to take
5 | you along in the process of understanding what it is all about.
6 |
7 | There is space for your modification, eg:
8 | - The website where the image is available
9 | - The exact image you need
10 |
11 | A sample i.e.~~ a website and a picture precisely has been provided for you to run, test and tweak the code.
12 |
13 | - [image-retrieval.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/image-retrieval/image-retrieval.py)
14 |
15 | Code/program owned by:
16 | [@chryzcodez](https://github.com/chryzcodez)
17 |
18 |
--------------------------------------------------------------------------------
/all-python-codes/image-retrieval/image-retrieval.py:
--------------------------------------------------------------------------------
1 | import socket
2 | import time
3 |
4 | # Put in a website in HOST ' '
5 | # EX HOST = 'data.pr4e.org'
6 | HOST = ' '
7 | PORT = 80
8 |
9 | mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
10 | mysock.connect((HOST, PORT))
11 | #put the link of the image available in the website as provided in the word HOST
12 | # EX mysock.sendall(b'GET http://data.pr4e.org/cover3.jpg HTTP/1\r\n\r\n')
13 | mysock.sendall(b' HTTP/1\r\n\r\n')
14 | count = 0
15 | picture = b""
16 |
17 | while True :
18 | # recieving the data from the socket
19 | data = mysock.recv(5120)
20 | # if data has finished, stop
21 | if len(data) < 1: break
22 | # you can remove the '#', the code is to cause the data to pause at certain time, this aids if the data retrieving is large
23 | #time.sleep(0.25)
24 | # ge the length & the count of the data
25 | count = count + len(data)
26 | print(len(data), count)
27 | picture = picture + data
28 |
29 | mysock.close
30 |
31 |
32 |
33 | # Skip past the header and save the picture data
34 |
35 | # to use this remove the 'hashtag'
36 | #picture = picture[pos+4:]
37 | #fhand = open("stuff.jpg", "wb")
38 | #fhand.write(picture)
39 | #fhand.close()
40 |
--------------------------------------------------------------------------------
/all-python-codes/longest-word-in-text-file/README.md:
--------------------------------------------------------------------------------
1 | # Display longest word in a text file
2 |
3 | This a program that helps you search and display the longest word in a text file.
4 |
5 | # Prerequisites
6 |
7 | It requires no prerequisites, you only need to run the script. If you don't have Python installed, you can visit [here](https://www.python.org/downloads/) to download Python.
8 |
9 | # How to run the script
10 |
11 | To run the script, open a terminal in the folder where your script is located and run the following command
12 |
13 | `python longestWordInFile.py`.
14 |
15 | # Sample use of the script
16 |
17 | 
18 |
19 | # Author's name
20 |
21 | [Tanimowo Emmanuel](https://github.com/Mannuel25)
--------------------------------------------------------------------------------
/all-python-codes/longest-word-in-text-file/longestWordInFile.py:
--------------------------------------------------------------------------------
1 | def longest_word_in_file():
2 | """
3 | A program that takes in a filename and displays the longest
4 | word(s) in the file we'll be making use of text files only.
5 | : return: None
6 | """
7 | # get the filename
8 | filename = input('\nEnter the filename only, the file extension would be added: ')
9 | # add the file extension to the filename
10 | filename = filename.strip() + '.txt'
11 | # make a dictionary that tracks
12 | # each word and their length
13 | words_and_their_length = {}
14 | try:
15 | with open(filename, 'r') as f_obj:
16 | # loop through each sentence / line and
17 | # split each sentence into several words
18 | for i in f_obj:
19 | split_sentence = i.split()
20 | # loop through each splitted word and
21 | # store the name and length of each word
22 | for j in split_sentence:
23 | words_and_their_length[j] = len(j)
24 | except FileNotFoundError:
25 | print(f'The file \'{filename}\' couldn\'t be found')
26 | else:
27 | # get the length of each word in file
28 | length_of_each_word = [i for i in words_and_their_length.values()]
29 | # get the length of the longest word
30 | longest_word_length = max(length_of_each_word)
31 | if length_of_each_word.count(longest_word_length) == 1:
32 | for i,j in words_and_their_length.items():
33 | if j == longest_word_length:
34 | print(f'The Longest word in the file is {i}')
35 | else:
36 | # if more than a word have the same length,
37 | # store all the words in a list
38 | tie_words = [i for i,j in words_and_their_length.items() if j == longest_word_length]
39 | print('The Longest words in the file are {}'.format(', '.join(tie_words)))
40 |
41 | longest_word_in_file()
--------------------------------------------------------------------------------
/all-python-codes/longest-word-in-text-file/script_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/longest-word-in-text-file/script_screenshot.png
--------------------------------------------------------------------------------
/all-python-codes/number-guessing-game/README.md:
--------------------------------------------------------------------------------
1 | # Number Guessing Game
2 |
3 | This is a game that allows you guess a number between the range of 1- 10 in just 7 trials.
4 |
5 | # Prerequisites
6 |
7 | It requires no prerequisites, you only need to run the script. If you don't have Python installed, you can visit [here](https://www.python.org/downloads/) to download Python
8 |
9 | # How to run the script
10 |
11 | Running the script is pretty easy, open a terminal in the folder where your script is located and run the following command :
12 |
13 | `python numberGuessingGame.py`
14 |
15 | # Sample use of the script
16 |
17 | 
18 |
19 |
20 | # Author's name
21 |
22 | [Tanimowo Emmanuel](https://github.com/Mannuel25)
--------------------------------------------------------------------------------
/all-python-codes/number-guessing-game/numberGuessingGame.py:
--------------------------------------------------------------------------------
1 | import random
2 | # random module is a built-in module to generate pseudo-random variables
3 |
4 | def display_gameplay():
5 | """
6 | Displays the gameplay
7 | : return: None
8 | """
9 | print('\nWelcome to Number Guessing Game!')
10 | print('In this game you\'ve just 7 trials to guess a number between the range of 1-10')
11 | print('Note: enter \'exit\' to end game')
12 |
13 | def startGame():
14 | """
15 | Gets user response to start or end the game
16 | : return: str
17 | """
18 | # call the function to display gameplay
19 | displayGameplay = display_gameplay()
20 | # make a list of the possible inputs
21 | # to start or end the game
22 | POSSIBLE_RESPONSES = ['Y','YES','N','NO','EXIT']
23 | # get user's response
24 | user_response = input('\nStart game? (yes/no): ').strip().upper()
25 | while user_response not in POSSIBLE_RESPONSES:
26 | print('\nInvalid Input!')
27 | user_response = input('\nStart game? (yes/no): ').strip().upper()
28 | else: return user_response
29 |
30 | def game():
31 | """
32 | Controls the game
33 | : return: None
34 | """
35 | # call the function to get user's response
36 | play_game = startGame()
37 | # assign the number of trials the user has to a variable
38 | number_of_trials = 7
39 | while play_game == 'YES' or play_game == 'Y':
40 | # make a list that contains all the
41 | # numbers a user can guess
42 | ACCEPTED_NUMBER_PICKS = [str(i) for i in range(1,11)]
43 | # get user's number
44 | user_input = input('\nGuess a number between the range of 1-10: ').strip().upper()
45 | while user_input not in ACCEPTED_NUMBER_PICKS and user_input != 'EXIT' :
46 | print('Invalid Input!')
47 | user_input = input('\nGuess a valid number between the range of 1-10: ').strip().upper()
48 | if user_input == 'EXIT':
49 | print('Bye Player!')
50 | break
51 | else:
52 | # generate a random number in the range 1-10
53 | # and assign it to a variable
54 | computer_number = random.randint(1,10)
55 | user_input = int(user_input)
56 | if user_input < computer_number:
57 | number_of_trials -= 1
58 | print(f'Oops, {user_input} is too low')
59 | if number_of_trials != 0:
60 | print(f'You\'ve {number_of_trials} trial(s) left')
61 | play_game = input('\nGuess again? (yes/no): ').strip().upper()
62 | else:
63 | print(F'\nGame over!, you\'ve 0 trial left..try harder next time 😉')
64 | break
65 | elif user_input > computer_number:
66 | number_of_trials -= 1
67 | print(f'Oops, {user_input} is too high')
68 | if number_of_trials != 0:
69 | print(f'You\'ve {number_of_trials} trial(s) left')
70 | play_game = input('\nGuess again? (yes/no): ').strip().upper()
71 | else:
72 | print(F'\nGame over!, you\'ve 0 trial left..try harder next time 😉')
73 | break
74 | elif user_input == computer_number:
75 | number_of_trials -= 1
76 | print(f'Congratulations!!..you guessed right, after {7 - number_of_trials} trial(s)')
77 | play_game = input('\nDo you wish to play again? (yes/no): ').strip().upper()
78 | # if the user wishes to play again, assign
79 | # the number of trials the user has to a variable
80 | number_of_trials = 7
81 |
82 | game()
--------------------------------------------------------------------------------
/all-python-codes/number-guessing-game/script_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/number-guessing-game/script_screenshot.png
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-1/README.md:
--------------------------------------------------------------------------------
1 | # Password Generator
2 |
3 | This program generates a secure random password. You'll be required to enter the length of your desired password only.
4 |
5 | # Prerequisites
6 |
7 | It requires no prerequisites, you only need to run the script. If you don't have Python installed, you can visit [here](https://www.python.org/downloads/) to download Python.
8 |
9 | # How to run the script
10 |
11 | Running the script is pretty easy, open a terminal in the folder where your script is located and run the following command :
12 |
13 | `python my_password_generator.py`
14 |
15 | # Sample use of the script
16 |
17 | 
18 |
19 | 
20 |
21 | 
22 |
23 | # Author's name
24 |
25 | [Tanimowo Emmanuel](https://github.com/Mannuel25)
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-1/my_password_generator.py:
--------------------------------------------------------------------------------
1 | import secrets, string
2 |
3 | def MY_PASSWORD():
4 | """
5 | A program that displays a secure random password
6 | : return: None
7 | """
8 | try:
9 | # get the length of the user
10 | # desired password
11 | length_of_password = int(input('\nEnter the length of your desired password: '))
12 | except ValueError:
13 | print('Invalid Input!')
14 | else:
15 | # make a string that contains both upper and
16 | # lower case letters, digits and punctuations
17 | password_picks = string.ascii_letters + string.digits + string.punctuation
18 | # select a password based on the length entered
19 | # from the combination of both upper and lower case letters
20 | # digits and punctuations
21 | yourPassword = ''.join(secrets.choice(password_picks) for i in range(length_of_password))
22 | # make a list of the generated password
23 | password_list = list(yourPassword)
24 | # shuffle the password
25 | secrets.SystemRandom().shuffle(password_list)
26 | print('Password:',''.join(password_list))
27 |
28 | MY_PASSWORD()
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-1/screenshot_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-generator/password-generator-1/screenshot_1.png
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-1/screenshot_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-generator/password-generator-1/screenshot_2.png
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-1/screenshot_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-generator/password-generator-1/screenshot_3.png
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-2/README.md:
--------------------------------------------------------------------------------
1 | # Password Generator
2 |
3 | This program generates a secure random password. You'll be required to enter a few details about what your password should contain:
4 |
5 | - The length of alphabets (this includes upper and lower case)
6 | - The length of special characters
7 | - The length of digits.
8 |
9 | # Prerequisites
10 |
11 | It requires no prerequisites, you only need to run the script. If you don't have Python installed, you can visit [here](https://www.python.org/downloads/) to download Python.
12 |
13 | # How to run the script
14 |
15 | Running the script is pretty easy, open a terminal in the folder where your script is located and run the following command :
16 |
17 | `python generate_password.py`
18 |
19 | # Sample use of the script
20 |
21 | 
22 |
23 | 
24 |
25 | 
26 |
27 | # Author's name
28 |
29 | [Tanimowo Emmanuel](https://github.com/Mannuel25)
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-2/generate_password.py:
--------------------------------------------------------------------------------
1 | import secrets, string
2 |
3 | def password_generator():
4 | """
5 | A program that generates a secure random password
6 | : return: None
7 | """
8 | try:
9 | # get the length of alphabets to be present in password
10 | length_of_alphabets = int(input('\nEnter the length of alphabets (upper and lower case inclusive): '))
11 | # get the length of digits to be present in password
12 | length_of_digits = int(input('Enter the length of digits: '))
13 | # get the length of special characters to be present in password
14 | length_of_special_characters = int(input('Enter the length of special characters: '))
15 | except ValueError:
16 | print('Invalid Input!')
17 | else:
18 | # get the total password length
19 | passwordLength = length_of_alphabets + length_of_digits + length_of_special_characters
20 | # generate a password for user based on the total password length
21 | securePassword = ''.join(secrets.choice(string.ascii_letters) for i in range(length_of_alphabets))
22 | securePassword += ''.join(secrets.choice(string.digits) for i in range(length_of_digits))
23 | securePassword += ''.join(secrets.choice(string.punctuation) for i in range(length_of_special_characters))
24 | # make a list with the password
25 | generated_password = list(securePassword)
26 | # shuffle generated password
27 | secrets.SystemRandom().shuffle(generated_password)
28 | print('Your password of length {} is {}'.format(passwordLength,''.join(generated_password)))
29 |
30 | password_generator()
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-2/screenshot_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-generator/password-generator-2/screenshot_1.png
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-2/screenshot_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-generator/password-generator-2/screenshot_2.png
--------------------------------------------------------------------------------
/all-python-codes/password-generator/password-generator-2/screenshot_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-generator/password-generator-2/screenshot_3.png
--------------------------------------------------------------------------------
/all-python-codes/password-validator/README.md:
--------------------------------------------------------------------------------
1 | # Password Validator
2 |
3 | This program validates passwords to match specific rules. A valid password is one that conforms to the following rules:
4 | - Minimum length is 6;
5 | - Maximum length is 12;
6 | - Contains at least an uppercase letter or a lowercase letter
7 | - Contains at least a number;
8 | - Contains at least a special character (such as @,+,£,$,%,*^,etc);
9 | - Doesn't contain space(s).
10 |
11 | # Prerequisites
12 |
13 | It requires no prerequisites, you only need to run the script. If you don't have Python installed, you can visit [here](https://www.python.org/downloads/) to download Python.
14 |
15 | # How to run the script
16 |
17 | Running the script is pretty easy, open a terminal in the folder where your script is located and run the following command :
18 |
19 | `python main.py`
20 |
21 | # Sample use of the script
22 |
23 | 
24 |
25 | 
26 |
27 | 
28 |
29 | # Author's name
30 |
31 | [Tanimowo Emmanuel](https://github.com/Mannuel25)
--------------------------------------------------------------------------------
/all-python-codes/password-validator/main.py:
--------------------------------------------------------------------------------
1 | import string
2 |
3 | def passwordValidator():
4 | """
5 | Validates passwords to match specific rules
6 | : return: str
7 | """
8 | # display rules that a password must conform to
9 | print('\nYour password should: ')
10 | print('\t- Have a minimum length of 6;')
11 | print('\t- Have a maximum length of 12;')
12 | print('\t- Contain at least an uppercase letter or a lowercase letter')
13 | print('\t- Contain at least a number;')
14 | print('\t- Contain at least a special character (such as @,+,£,$,%,*^,etc);')
15 | print('\t- Not contain space(s).')
16 | # get user's password
17 | userPassword = input('\nEnter a valid password: ').strip()
18 | # check if user's password conforms
19 | # to the rules above
20 | if not(6 <= len(userPassword) <= 12):
21 | message = 'Invalid Password..your password should have a minimum '
22 | message += 'length of 6 and a maximum length of 12'
23 | return message
24 | if ' ' in userPassword:
25 | message = 'Invalid Password..your password shouldn\'t contain space(s)'
26 | return message
27 | if not any(i in string.ascii_letters for i in userPassword):
28 | message = 'Invalid Password..your password should contain at least '
29 | message += 'an uppercase letter and a lowercase letter'
30 | return message
31 | if not any(i in string.digits for i in userPassword):
32 | message = 'Invalid Password..your password should contain at least a number'
33 | return message
34 | if not any(i in string.punctuation for i in userPassword):
35 | message = 'Invalid Password..your password should contain at least a special character'
36 | return message
37 | else:
38 | return 'Valid Password!'
39 |
40 | my_password = passwordValidator()
41 | print(my_password)
--------------------------------------------------------------------------------
/all-python-codes/password-validator/screenshot_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-validator/screenshot_1.png
--------------------------------------------------------------------------------
/all-python-codes/password-validator/screenshot_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-validator/screenshot_2.png
--------------------------------------------------------------------------------
/all-python-codes/password-validator/screenshot_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chryz-hub/py-projects/653ba4e6923ee1f55a64aef23174515c1db68758/all-python-codes/password-validator/screenshot_3.png
--------------------------------------------------------------------------------
/all-python-codes/retri-itunes-data/README.md:
--------------------------------------------------------------------------------
1 | # Retrieve-Itunes-data
2 | This code is to retrieve data from your itunes music; The artist, genre, music, length and so on like that, the codes are well commented for you to understand what it is all
3 | about!
4 |
5 | - ## [Tracks.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/retri-itunes-data/tracks.py)
6 | The code is a pure python program, you run this on your terminal alone to get your itunes data
7 |
8 | - ## [Tracksc.py](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/retri-itunes-data/tracksc.py)
9 | This is a python code dealing with the storage of the data retrieved into an sqlite database.
10 |
11 | - ## [Itunesdata.xml](https://github.com/chryz-hub/py-projects/blob/master/all-python-codes/retri-itunes-data/itunesdata.xml)
12 | I later decided to commit an itunes music data(xml), it is an xml file and that would really work for any language you use. I made it available for use maybe probably you can get a personal data, you can make use of this!
13 |
14 | Code/program owned by:
15 | [@chryzcodez](https://github.com/chryzcodez)
16 |
--------------------------------------------------------------------------------
/all-python-codes/retri-itunes-data/itunesdata.xml:
--------------------------------------------------------------------------------
1 | # itunes music xml data, you can use yours if you have or better still use the resources provided
2 |
3 |
4 |
5 |
6 |
7 | Major Version1
8 | Minor Version1
9 | Date2015-11-24T11:12:10Z
10 | Application Version12.3.1.23
11 | Features5
12 | Show Content Ratings
13 | Music Folderfile:///Users/csev/Music/iTunes/iTunes%20Music/
14 | Library Persistent IDB7006C9E9799282E
15 | Tracks
16 |
17 | 369
18 |
19 | Track ID369
20 | NameAnother One Bites The Dust
21 | ArtistQueen
22 | ComposerJohn Deacon
23 | AlbumGreatest Hits
24 | GenreRock
25 | KindMPEG audio file
26 | Size4344295
27 | Total Time217103
28 | Disc Number1
29 | Disc Count1
30 | Track Number3
31 | Track Count17
32 | Year1980
33 | Date Modified2006-02-14T16:13:02Z
34 | Date Added2006-02-14T16:12:53Z
35 | Bit Rate160
36 | Sample Rate44100
37 | Play Count55
38 | Play Date3518868190
39 | Play Date UTC2015-07-04T19:23:10Z
40 | Skip Count1
41 | Skip Date2015-10-14T23:31:47Z
42 | Rating100
43 | Album Rating100
44 | Album Rating Computed
45 | Normalization1511
46 | Compilation
47 | Persistent ID21130E105F3B8845
48 | Track TypeFile
49 | File Type1297106739
50 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Greatest%20Hits/03%20Another%20One%20Bites%20The%20Dust.mp3
51 | File Folder Count4
52 | Library Folder Count1
53 |
54 | 371
55 |
56 | Track ID371
57 | NameAsche Zu Asche
58 | ArtistRammstein
59 | ComposerChristoph Doom Schneider, Doktor Christian Lorenz, Oliver Riedel, Paul Landers, Richard Z. Kruspe-Bernstein & Till Lindemann
60 | AlbumHerzeleid
61 | GenreIndustrial
62 | KindMPEG audio file
63 | Size4638526
64 | Total Time231810
65 | Disc Number1
66 | Disc Count1
67 | Track Number4
68 | Track Count11
69 | Year1995
70 | Date Modified2006-02-22T04:38:17Z
71 | Date Added2006-02-14T16:13:04Z
72 | Bit Rate160
73 | Sample Rate44100
74 | Play Count79
75 | Play Date3518869000
76 | Play Date UTC2015-07-04T19:36:40Z
77 | Rating100
78 | Album Rating100
79 | Album Rating Computed
80 | Normalization4576
81 | Persistent ID21130E105F3B8846
82 | Track TypeFile
83 | File Type1297106739
84 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Rammstein/Herzeleid/04%20Asche%20Zu%20Asche.mp3
85 | File Folder Count4
86 | Library Folder Count1
87 |
88 | 373
89 |
90 | Track ID373
91 | NameBeauty School Dropout
92 | ArtistVarious
93 | AlbumGrease
94 | GenreSoundtrack
95 | KindMPEG audio file
96 | Size4801377
97 | Total Time239960
98 | Track Number6
99 | Track Count24
100 | Date Modified2006-02-14T16:13:26Z
101 | Date Added2006-02-14T16:13:15Z
102 | Bit Rate160
103 | Sample Rate44100
104 | Play Count48
105 | Play Date3516380131
106 | Play Date UTC2015-06-06T00:15:31Z
107 | Skip Count1
108 | Skip Date2010-04-07T15:38:14Z
109 | Rating100
110 | Album Rating100
111 | Album Rating Computed
112 | Normalization1401
113 | Persistent ID21130E105F3B8847
114 | Track TypeFile
115 | File Type1297106739
116 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Various/Grease/06%20Beauty%20School%20Dropout.mp3
117 | File Folder Count4
118 | Library Folder Count1
119 |
120 | 375
121 |
122 | Track ID375
123 | NameBlack Dog
124 | ArtistLed Zeppelin
125 | ComposerJimmy Page, Robert Plant, John Paul Jones
126 | AlbumIV
127 | GenreRock
128 | KindMPEG audio file
129 | Size5934629
130 | Total Time296620
131 | Disc Number1
132 | Disc Count1
133 | Track Number1
134 | Track Count8
135 | Year1971
136 | Date Modified2014-11-05T23:44:14Z
137 | Date Added2006-02-14T16:13:27Z
138 | Bit Rate160
139 | Sample Rate44100
140 | Play Count109
141 | Play Date3516392326
142 | Play Date UTC2015-06-06T03:38:46Z
143 | Skip Count1
144 | Skip Date2012-11-19T14:17:56Z
145 | Rating100
146 | Album Rating100
147 | Album Rating Computed
148 | Normalization1364
149 | Persistent ID21130E105F3B8848
150 | Track TypeFile
151 | File Type1297106739
152 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Led%20Zeppelin/IV/01%20Black%20Dog.mp3
153 | File Folder Count4
154 | Library Folder Count1
155 |
156 | 377
157 |
158 | Track ID377
159 | NameBring The Boys Back Home
160 | ArtistPink Floyd
161 | ComposerRoger Waters
162 | AlbumThe Wall [Disc 2]
163 | GenreRock
164 | KindMPEG audio file
165 | Size1744588
166 | Total Time87118
167 | Disc Number2
168 | Disc Count2
169 | Track Number5
170 | Track Count13
171 | Year1979
172 | Date Modified2006-02-14T16:13:53Z
173 | Date Added2006-02-14T16:13:50Z
174 | Bit Rate160
175 | Sample Rate44100
176 | Play Count33
177 | Play Date3514729354
178 | Play Date UTC2015-05-17T21:42:34Z
179 | Skip Count11
180 | Skip Date2013-10-20T10:35:02Z
181 | Rating100
182 | Album Rating100
183 | Album Rating Computed
184 | Normalization1445
185 | Sort AlbumWall [Disc 2]
186 | Persistent ID21130E105F3B8849
187 | Track TypeFile
188 | File Type1297106739
189 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Pink%20Floyd/The%20Wall%20%5BDisc%202%5D/2-05%20Bring%20The%20Boys%20Back%20Home.mp3
190 | File Folder Count4
191 | Library Folder Count1
192 |
193 | 379
194 |
195 | Track ID379
196 | NameCircles
197 | ArtistBryan Lee
198 | AlbumBlues Is
199 | GenreFunk
200 | KindMPEG audio file
201 | Size7109552
202 | Total Time355369
203 | Track Number1
204 | Track Count12
205 | Date Modified2009-03-31T14:14:37Z
206 | Date Added2006-02-14T16:13:54Z
207 | Bit Rate160
208 | Sample Rate44100
209 | Play Count54
210 | Play Date3493169662
211 | Play Date UTC2014-09-10T08:54:22Z
212 | Skip Count4
213 | Skip Date2013-07-01T12:06:02Z
214 | Rating60
215 | Album Rating100
216 | Album Rating Computed
217 | Normalization1592
218 | Persistent ID21130E105F3B884A
219 | Track TypeFile
220 | File Type1297106739
221 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/01%20Circles.mp3
222 | File Folder Count4
223 | Library Folder Count1
224 |
225 | 381
226 |
227 | Track ID381
228 | NameComfortably Numb
229 | ArtistPink Floyd
230 | ComposerDavid Gilmour
231 | AlbumThe Wall [Disc 2]
232 | GenreRock
233 | KindMPEG audio file
234 | Size7684826
235 | Total Time384130
236 | Disc Number2
237 | Disc Count2
238 | Track Number6
239 | Track Count13
240 | Year1979
241 | Date Modified2006-02-14T16:14:28Z
242 | Date Added2006-02-14T16:14:11Z
243 | Bit Rate160
244 | Sample Rate44100
245 | Play Count36
246 | Play Date3514729795
247 | Play Date UTC2015-05-17T21:49:55Z
248 | Skip Count1
249 | Skip Date2013-10-21T00:07:39Z
250 | Rating100
251 | Album Rating100
252 | Album Rating Computed
253 | Normalization1595
254 | Sort AlbumWall [Disc 2]
255 | Persistent ID21130E105F3B884B
256 | Track TypeFile
257 | File Type1297106739
258 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Pink%20Floyd/The%20Wall%20%5BDisc%202%5D/2-06%20Comfortably%20Numb.mp3
259 | File Folder Count4
260 | Library Folder Count1
261 |
262 | 383
263 |
264 | Track ID383
265 | NameCrazy Little Thing Called Love
266 | ArtistQueen
267 | ComposerFreddie Mercury
268 | AlbumGreatest Hits
269 | GenreRock
270 | KindMPEG audio file
271 | Size3274850
272 | Total Time163631
273 | Disc Number1
274 | Disc Count1
275 | Track Number9
276 | Track Count17
277 | Year1979
278 | Date Modified2006-02-14T16:14:37Z
279 | Date Added2006-02-14T16:14:30Z
280 | Bit Rate160
281 | Sample Rate44100
282 | Play Count38
283 | Play Date3465751592
284 | Play Date UTC2013-10-28T00:46:32Z
285 | Rating100
286 | Album Rating100
287 | Album Rating Computed
288 | Normalization1258
289 | Compilation
290 | Persistent ID21130E105F3B884C
291 | Track TypeFile
292 | File Type1297106739
293 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Greatest%20Hits/09%20Crazy%20Little%20Thing%20Called%20Love.mp3
294 | File Folder Count4
295 | Library Folder Count1
296 |
297 | 385
298 |
299 | Track ID385
300 | NameElectric Funeral
301 | ArtistBlack Sabbath
302 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
303 | AlbumParanoid
304 | GenreMetal
305 | KindMPEG audio file
306 | Size5862554
307 | Total Time293015
308 | Disc Number1
309 | Disc Count1
310 | Track Number5
311 | Track Count8
312 | Year1970
313 | Date Modified2006-02-21T22:50:24Z
314 | Date Added2006-02-14T16:14:38Z
315 | Bit Rate160
316 | Sample Rate44100
317 | Play Count44
318 | Play Date3502701857
319 | Play Date UTC2014-12-29T17:44:17Z
320 | Rating100
321 | Album Rating100
322 | Album Rating Computed
323 | Normalization1188
324 | Persistent ID21130E105F3B884D
325 | Track TypeFile
326 | File Type1297106739
327 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/05%20Electric%20Funeral.mp3
328 | File Folder Count4
329 | Library Folder Count1
330 |
331 | 387
332 |
333 | Track ID387
334 | NameFat Bottomed Girls
335 | ArtistQueen
336 | ComposerBrian May
337 | AlbumGreatest Hits
338 | GenreRock
339 | KindMPEG audio file
340 | Size5152514
341 | Total Time257515
342 | Disc Number1
343 | Disc Count1
344 | Track Number6
345 | Track Count17
346 | Year1978
347 | Date Modified2006-02-14T16:15:04Z
348 | Date Added2006-02-14T16:14:53Z
349 | Bit Rate160
350 | Sample Rate44100
351 | Play Count38
352 | Play Date3465671648
353 | Play Date UTC2013-10-27T02:34:08Z
354 | Rating100
355 | Album Rating100
356 | Album Rating Computed
357 | Normalization3631
358 | Compilation
359 | Persistent ID21130E105F3B884E
360 | Track TypeFile
361 | File Type1297106739
362 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Greatest%20Hits/06%20Fat%20Bottomed%20Girls.mp3
363 | File Folder Count4
364 | Library Folder Count1
365 |
366 | 389
367 |
368 | Track ID389
369 | NameFor Those About To Rock (We Salute You)
370 | ArtistAC/DC
371 | AlbumWho Made Who
372 | GenreRock
373 | KindMPEG audio file
374 | Size7077218
375 | Total Time353750
376 | Disc Number1
377 | Disc Count1
378 | Track Number9
379 | Track Count9
380 | Year1981
381 | Date Modified2006-02-22T04:16:01Z
382 | Date Added2006-02-14T16:15:06Z
383 | Bit Rate160
384 | Sample Rate44100
385 | Play Count84
386 | Play Date3489336536
387 | Play Date UTC2014-07-28T00:08:56Z
388 | Rating100
389 | Album Rating100
390 | Album Rating Computed
391 | Normalization11774
392 | Compilation
393 | Persistent ID21130E105F3B884F
394 | Track TypeFile
395 | File Type1297106739
396 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Who%20Made%20Who/09%20For%20Those%20About%20To%20Rock%20(We%20Salute%20You).mp3
397 | File Folder Count4
398 | Library Folder Count1
399 |
400 | 391
401 |
402 | Track ID391
403 | NameFour Sticks
404 | ArtistLed Zeppelin
405 | ComposerJimmy Page, Robert Plant
406 | AlbumIV
407 | GenreRock
408 | KindMPEG audio file
409 | Size5690630
410 | Total Time284421
411 | Disc Number1
412 | Disc Count1
413 | Track Number6
414 | Track Count8
415 | Year1971
416 | Date Modified2006-02-14T16:15:38Z
417 | Date Added2006-02-14T16:15:24Z
418 | Bit Rate160
419 | Sample Rate44100
420 | Play Count84
421 | Play Date3503057548
422 | Play Date UTC2015-01-02T20:32:28Z
423 | Rating100
424 | Album Rating100
425 | Album Rating Computed
426 | Normalization897
427 | Persistent ID21130E105F3B8850
428 | Track TypeFile
429 | File Type1297106739
430 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Led%20Zeppelin/IV/06%20Four%20Sticks.mp3
431 | File Folder Count4
432 | Library Folder Count1
433 |
434 | 393
435 |
436 | Track ID393
437 | NameFurious Angels
438 | ArtistRob Dougan
439 | ComposerRob Dougan
440 | AlbumThe Matrix Reloaded
441 | GenreSoundtrack
442 | KindMPEG audio file
443 | Size6602318
444 | Total Time330004
445 | Disc Number1
446 | Disc Count2
447 | Track Number4
448 | Track Count12
449 | Year2003
450 | Date Modified2006-02-14T16:15:54Z
451 | Date Added2006-02-14T16:15:40Z
452 | Bit Rate160
453 | Sample Rate44100
454 | Play Count54
455 | Play Date3501131153
456 | Play Date UTC2014-12-11T13:25:53Z
457 | Skip Count1
458 | Skip Date2012-06-30T17:09:49Z
459 | Rating100
460 | Album Rating100
461 | Album Rating Computed
462 | Normalization3425
463 | Compilation
464 | Sort AlbumMatrix Reloaded
465 | Persistent ID21130E105F3B8851
466 | Track TypeFile
467 | File Type1297106739
468 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/The%20Matrix%20Reloaded/1-04%20Furious%20Angels.mp3
469 | File Folder Count4
470 | Library Folder Count1
471 |
472 | 395
473 |
474 | Track ID395
475 | NameGelle
476 | ArtistBryan Lee
477 | AlbumBlues Is
478 | GenreBlues/R&B
479 | KindMPEG audio file
480 | Size3998889
481 | Total Time199836
482 | Track Number6
483 | Track Count12
484 | Date Modified2006-02-14T16:16:04Z
485 | Date Added2006-02-14T16:15:55Z
486 | Bit Rate160
487 | Sample Rate44100
488 | Play Count45
489 | Play Date3493171048
490 | Play Date UTC2014-09-10T09:17:28Z
491 | Skip Count1
492 | Skip Date2013-10-28T20:48:05Z
493 | Rating60
494 | Album Rating100
495 | Album Rating Computed
496 | Normalization1203
497 | Persistent ID21130E105F3B8852
498 | Track TypeFile
499 | File Type1297106739
500 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/06%20Gelle.mp3
501 | File Folder Count4
502 | Library Folder Count1
503 |
504 | 397
505 |
506 | Track ID397
507 | NameGoing To California
508 | ArtistLed Zeppelin
509 | ComposerJimmy Page, Robert Plant
510 | AlbumIV
511 | GenreRock
512 | KindMPEG audio file
513 | Size4315553
514 | Total Time215666
515 | Disc Number1
516 | Disc Count1
517 | Track Number7
518 | Track Count8
519 | Year1971
520 | Date Modified2006-02-14T16:16:15Z
521 | Date Added2006-02-14T16:16:06Z
522 | Bit Rate160
523 | Sample Rate44100
524 | Play Count100
525 | Play Date3502891530
526 | Play Date UTC2014-12-31T22:25:30Z
527 | Skip Count1
528 | Skip Date2010-04-07T15:38:46Z
529 | Rating100
530 | Album Rating100
531 | Album Rating Computed
532 | Normalization506
533 | Persistent ID21130E105F3B8853
534 | Track TypeFile
535 | File Type1297106739
536 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Led%20Zeppelin/IV/07%20Going%20To%20California.mp3
537 | File Folder Count4
538 | Library Folder Count1
539 |
540 | 399
541 |
542 | Track ID399
543 | NameGotta Move Fast
544 | ArtistMichael Loceff
545 | KindMPEG audio file
546 | Size5752732
547 | Total Time287529
548 | Track Number9
549 | Track Count13
550 | Date Modified2006-02-14T13:16:30Z
551 | Date Added2006-02-14T16:16:17Z
552 | Bit Rate160
553 | Sample Rate44100
554 | Play Count19
555 | Play Date3462615302
556 | Play Date UTC2013-09-21T17:35:02Z
557 | Skip Count2
558 | Skip Date2007-03-26T12:20:03Z
559 | Rating100
560 | Album Rating100
561 | Album Rating Computed
562 | Normalization945
563 | Persistent ID21130E105F3B8854
564 | Track TypeFile
565 | File Type1297106739
566 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Michael%20Loceff/Unknown%20Album/09%20Gotta%20Move%20Fast.mp3
567 | File Folder Count4
568 | Library Folder Count1
569 |
570 | 401
571 |
572 | Track ID401
573 | NameGrease
574 | ArtistVarious
575 | AlbumGrease
576 | GenreSoundtrack
577 | KindMPEG audio file
578 | Size4117999
579 | Total Time205792
580 | Track Number1
581 | Track Count24
582 | Date Modified2013-11-13T14:41:09Z
583 | Date Added2006-02-14T16:16:31Z
584 | Bit Rate160
585 | Sample Rate44100
586 | Play Count42
587 | Play Date3516436529
588 | Play Date UTC2015-06-06T15:55:29Z
589 | Skip Count1
590 | Skip Date2014-02-02T16:42:49Z
591 | Rating100
592 | Album Rating100
593 | Album Rating Computed
594 | Normalization1537
595 | Persistent ID21130E105F3B8855
596 | Track TypeFile
597 | File Type1297106739
598 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Various/Grease/01%20Grease.mp3
599 | File Folder Count4
600 | Library Folder Count1
601 |
602 | 403
603 |
604 | Track ID403
605 | NameHand of Doom
606 | ArtistBlack Sabbath
607 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
608 | AlbumParanoid
609 | GenreMetal
610 | KindMPEG audio file
611 | Size8594436
612 | Total Time429609
613 | Disc Number1
614 | Disc Count1
615 | Track Number6
616 | Track Count8
617 | Year1970
618 | Date Modified2006-02-21T22:51:16Z
619 | Date Added2006-02-14T16:16:41Z
620 | Bit Rate160
621 | Sample Rate44100
622 | Play Count36
623 | Play Date3472741986
624 | Play Date UTC2014-01-16T23:33:06Z
625 | Rating100
626 | Album Rating100
627 | Album Rating Computed
628 | Normalization1462
629 | Persistent ID21130E105F3B8856
630 | Track TypeFile
631 | File Type1297106739
632 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/06%20Hand%20of%20Doom.mp3
633 | File Folder Count4
634 | Library Folder Count1
635 |
636 | 405
637 |
638 | Track ID405
639 | NameHells Bells
640 | ArtistAC/DC
641 | AlbumWho Made Who
642 | GenreRock
643 | KindMPEG audio file
644 | Size6261125
645 | Total Time312946
646 | Disc Number1
647 | Disc Count1
648 | Track Number6
649 | Track Count9
650 | Year1980
651 | Date Modified2006-02-22T04:15:10Z
652 | Date Added2006-02-14T16:17:07Z
653 | Bit Rate160
654 | Sample Rate44100
655 | Play Count82
656 | Play Date3473354932
657 | Play Date UTC2014-01-24T01:48:52Z
658 | Skip Count1
659 | Skip Date2014-11-15T01:09:30Z
660 | Rating100
661 | Album Rating100
662 | Album Rating Computed
663 | Normalization11733
664 | Compilation
665 | Persistent ID21130E105F3B8857
666 | Track TypeFile
667 | File Type1297106739
668 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Who%20Made%20Who/06%20Hells%20Bells.mp3
669 | File Folder Count4
670 | Library Folder Count1
671 |
672 | 407
673 |
674 | Track ID407
675 | NameHey You
676 | ArtistPink Floyd
677 | ComposerRoger Waters
678 | AlbumThe Wall [Disc 2]
679 | GenreRock
680 | KindMPEG audio file
681 | Size5648310
682 | Total Time282305
683 | Disc Number2
684 | Disc Count2
685 | Track Number1
686 | Track Count13
687 | Year1979
688 | Date Modified2006-02-14T16:17:37Z
689 | Date Added2006-02-14T16:17:24Z
690 | Bit Rate160
691 | Sample Rate44100
692 | Play Count23
693 | Play Date3514729106
694 | Play Date UTC2015-05-17T21:38:26Z
695 | Rating100
696 | Album Rating100
697 | Album Rating Computed
698 | Normalization1309
699 | Sort AlbumWall [Disc 2]
700 | Persistent ID21130E105F3B8858
701 | Track TypeFile
702 | File Type1297106739
703 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Pink%20Floyd/The%20Wall%20%5BDisc%202%5D/2-01%20Hey%20You.mp3
704 | File Folder Count4
705 | Library Folder Count1
706 |
707 | 409
708 |
709 | Track ID409
710 | NameI Worry
711 | ArtistBryan Lee
712 | AlbumBlues Is
713 | GenreBlues/R&B
714 | KindMPEG audio file
715 | Size6828475
716 | Total Time341315
717 | Track Number11
718 | Track Count12
719 | Date Modified2006-02-14T16:17:56Z
720 | Date Added2006-02-14T16:17:39Z
721 | Bit Rate160
722 | Sample Rate44100
723 | Play Count33
724 | Play Date3493172455
725 | Play Date UTC2014-09-10T09:40:55Z
726 | Rating100
727 | Album Rating100
728 | Album Rating Computed
729 | Normalization1135
730 | Persistent ID21130E105F3B8859
731 | Track TypeFile
732 | File Type1297106739
733 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/11%20I%20Worry.mp3
734 | File Folder Count4
735 | Library Folder Count1
736 |
737 | 411
738 |
739 | Track ID411
740 | NameIron Man
741 | ArtistBlack Sabbath
742 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
743 | AlbumParanoid
744 | GenreMetal
745 | KindMPEG audio file
746 | Size7172848
747 | Total Time358530
748 | Disc Number1
749 | Disc Count1
750 | Track Number4
751 | Track Count8
752 | Year1970
753 | Date Modified2006-02-22T01:49:48Z
754 | Date Added2006-02-14T16:17:58Z
755 | Bit Rate160
756 | Sample Rate44100
757 | Play Count39
758 | Play Date3503420143
759 | Play Date UTC2015-01-07T01:15:43Z
760 | Rating100
761 | Album Rating100
762 | Album Rating Computed
763 | Normalization1981
764 | Persistent ID21130E105F3B885A
765 | Track TypeFile
766 | File Type1297106739
767 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/04%20Iron%20Man.mp3
768 | File Folder Count4
769 | Library Folder Count1
770 |
771 | 413
772 |
773 | Track ID413
774 | NameIs There Anybody Out There?
775 | ArtistPink Floyd
776 | ComposerRoger Waters
777 | AlbumThe Wall [Disc 2]
778 | GenreRock
779 | KindMPEG audio file
780 | Size3215808
781 | Total Time160679
782 | Disc Number2
783 | Disc Count2
784 | Track Number2
785 | Track Count13
786 | Year1979
787 | Date Modified2006-02-14T16:18:24Z
788 | Date Added2006-02-14T16:18:17Z
789 | Bit Rate160
790 | Sample Rate44100
791 | Play Count26
792 | Play Date3514729267
793 | Play Date UTC2015-05-17T21:41:07Z
794 | Skip Count1
795 | Skip Date2013-10-22T01:05:01Z
796 | Rating100
797 | Album Rating100
798 | Album Rating Computed
799 | Normalization693
800 | Sort AlbumWall [Disc 2]
801 | Persistent ID21130E105F3B885B
802 | Track TypeFile
803 | File Type1297106739
804 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Pink%20Floyd/The%20Wall%20%5BDisc%202%5D/2-02%20Is%20There%20Anybody%20Out%20There_.mp3
805 | File Folder Count4
806 | Library Folder Count1
807 |
808 | 415
809 |
810 | Track ID415
811 | NameIt was a Very Good Year
812 | ArtistFrank Sinatra
813 | AlbumGreatest Hits
814 | GenreEasy Listening
815 | KindMPEG audio file
816 | Size5379221
817 | Total Time268852
818 | Track Number3
819 | Track Count12
820 | Date Modified2006-02-14T16:18:40Z
821 | Date Added2006-02-14T16:18:26Z
822 | Bit Rate160
823 | Sample Rate44100
824 | Play Count39
825 | Play Date3468268859
826 | Play Date UTC2013-11-26T05:00:59Z
827 | Skip Count1
828 | Skip Date2007-03-26T12:20:03Z
829 | Rating100
830 | Album Rating100
831 | Album Rating Computed
832 | Normalization696
833 | Persistent ID21130E105F3B885C
834 | Track TypeFile
835 | File Type1297106739
836 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Frank%20Sinatra/Greatest%20Hits/03%20It%20was%20a%20Very%20Good%20Year.mp3
837 | File Folder Count4
838 | Library Folder Count1
839 |
840 | 417
841 |
842 | Track ID417
843 | NameIts Your Move
844 | ArtistBryan Lee
845 | AlbumBlues Is
846 | GenreBlues/R&B
847 | KindMPEG audio file
848 | Size4902211
849 | Total Time245002
850 | Track Number5
851 | Track Count12
852 | Date Modified2006-02-14T16:18:53Z
853 | Date Added2006-02-14T16:18:41Z
854 | Bit Rate160
855 | Sample Rate44100
856 | Play Count40
857 | Play Date3493170848
858 | Play Date UTC2014-09-10T09:14:08Z
859 | Skip Count1
860 | Skip Date2007-03-26T12:20:03Z
861 | Rating100
862 | Album Rating100
863 | Album Rating Computed
864 | Normalization2614
865 | Persistent ID21130E105F3B885D
866 | Track TypeFile
867 | File Type1297106739
868 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/05%20Its%20Your%20Move.mp3
869 | File Folder Count4
870 | Library Folder Count1
871 |
872 | 419
873 |
874 | Track ID419
875 | NameJack the Stripper/Fairies Wear Boots
876 | ArtistBlack Sabbath
877 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
878 | AlbumParanoid
879 | GenreMetal
880 | KindMPEG audio file
881 | Size7482166
882 | Total Time373995
883 | Disc Number1
884 | Disc Count1
885 | Track Number8
886 | Track Count8
887 | Year1970
888 | Date Modified2006-02-22T01:52:11Z
889 | Date Added2006-02-14T16:18:54Z
890 | Bit Rate160
891 | Sample Rate44100
892 | Play Count35
893 | Play Date3472742511
894 | Play Date UTC2014-01-16T23:41:51Z
895 | Skip Count1
896 | Skip Date2007-03-26T12:20:03Z
897 | Rating100
898 | Album Rating100
899 | Album Rating Computed
900 | Normalization1752
901 | Persistent ID21130E105F3B885E
902 | Track TypeFile
903 | File Type1297106739
904 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/08%20Jack%20the%20Stripper_Fairies%20Wear%20Boots.mp3
905 | File Folder Count4
906 | Library Folder Count1
907 |
908 | 421
909 |
910 | Track ID421
911 | NameKiller Queen
912 | ArtistQueen
913 | ComposerFreddie Mercury
914 | AlbumGreatest Hits
915 | GenreRock
916 | KindMPEG audio file
917 | Size3629575
918 | Total Time181368
919 | Disc Number1
920 | Disc Count1
921 | Track Number4
922 | Track Count17
923 | Year1974
924 | Date Modified2006-02-14T16:19:21Z
925 | Date Added2006-02-14T16:19:13Z
926 | Bit Rate160
927 | Sample Rate44100
928 | Play Count34
929 | Play Date3462508015
930 | Play Date UTC2013-09-20T11:46:55Z
931 | Skip Count1
932 | Skip Date2008-08-18T21:28:59Z
933 | Rating100
934 | Album Rating100
935 | Album Rating Computed
936 | Normalization3266
937 | Compilation
938 | Persistent ID21130E105F3B885F
939 | Track TypeFile
940 | File Type1297106739
941 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Greatest%20Hits/04%20Killer%20Queen.mp3
942 | File Folder Count4
943 | Library Folder Count1
944 |
945 | 423
946 |
947 | Track ID423
948 | NameLaichzeit
949 | ArtistRammstein
950 | ComposerChristoph Doom Schneider, Doktor Christian Lorenz, Oliver Riedel, Paul Landers, Richard Z. Kruspe-Bernstein & Till Lindemann
951 | AlbumHerzeleid
952 | GenreIndustrial
953 | KindMPEG audio file
954 | Size5259192
955 | Total Time262844
956 | Disc Number1
957 | Disc Count1
958 | Track Number10
959 | Track Count11
960 | Year1995
961 | Date Modified2006-02-22T04:41:32Z
962 | Date Added2006-02-14T16:19:23Z
963 | Bit Rate160
964 | Sample Rate44100
965 | Play Count41
966 | Play Date3483455112
967 | Play Date UTC2014-05-20T22:25:12Z
968 | Skip Count1
969 | Skip Date2013-09-20T23:58:48Z
970 | Rating100
971 | Album Rating100
972 | Album Rating Computed
973 | Normalization3721
974 | Persistent ID21130E105F3B8860
975 | Track TypeFile
976 | File Type1297106739
977 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Rammstein/Herzeleid/10%20Laichzeit.mp3
978 | File Folder Count4
979 | Library Folder Count1
980 |
981 | 425
982 |
983 | Track ID425
984 | NameLet me Down Easy
985 | ArtistBryan Lee
986 | AlbumBlues Is
987 | GenreBlues/R&B
988 | KindMPEG audio file
989 | Size6630998
990 | Total Time331441
991 | Track Number4
992 | Track Count12
993 | Date Modified2006-02-14T16:19:50Z
994 | Date Added2006-02-14T16:19:36Z
995 | Bit Rate160
996 | Sample Rate44100
997 | Play Count43
998 | Play Date3508728504
999 | Play Date UTC2015-03-09T10:48:24Z
1000 | Rating100
1001 | Album Rating100
1002 | Album Rating Computed
1003 | Normalization1929
1004 | Persistent ID21130E105F3B8861
1005 | Track TypeFile
1006 | File Type1297106739
1007 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/04%20Let%20me%20Down%20Easy.mp3
1008 | File Folder Count4
1009 | Library Folder Count1
1010 |
1011 | 427
1012 |
1013 | Track ID427
1014 | NameMisty Mountain Hop
1015 | ArtistLed Zeppelin
1016 | ComposerJimmy Page, Robert Plant, John Paul Jones
1017 | AlbumIV
1018 | GenreRock
1019 | KindMPEG audio file
1020 | Size5578850
1021 | Total Time278831
1022 | Disc Number1
1023 | Disc Count1
1024 | Track Number5
1025 | Track Count8
1026 | Year1971
1027 | Date Modified2006-02-14T16:20:13Z
1028 | Date Added2006-02-14T16:19:59Z
1029 | Bit Rate160
1030 | Sample Rate44100
1031 | Play Count88
1032 | Play Date3492855896
1033 | Play Date UTC2014-09-06T17:44:56Z
1034 | Rating100
1035 | Album Rating100
1036 | Album Rating Computed
1037 | Normalization1314
1038 | Persistent ID21130E105F3B8863
1039 | Track TypeFile
1040 | File Type1297106739
1041 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Led%20Zeppelin/IV/05%20Misty%20Mountain%20Hop.mp3
1042 | File Folder Count4
1043 | Library Folder Count1
1044 |
1045 | 429
1046 |
1047 | Track ID429
1048 | NameNo Low Down
1049 | ArtistBryan Lee
1050 | AlbumBlues Is
1051 | GenreBlues/R&B
1052 | KindMPEG audio file
1053 | Size4917360
1054 | Total Time245760
1055 | Track Number9
1056 | Track Count12
1057 | Date Modified2006-02-14T16:20:34Z
1058 | Date Added2006-02-14T16:20:24Z
1059 | Bit Rate160
1060 | Sample Rate44100
1061 | Play Count39
1062 | Play Date3493171889
1063 | Play Date UTC2014-09-10T09:31:29Z
1064 | Rating100
1065 | Album Rating100
1066 | Album Rating Computed
1067 | Normalization2768
1068 | Persistent ID21130E105F3B8865
1069 | Track TypeFile
1070 | File Type1297106739
1071 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/09%20No%20Low%20Down.mp3
1072 | File Folder Count4
1073 | Library Folder Count1
1074 |
1075 | 431
1076 |
1077 | Track ID431
1078 | NameNow You Are Gone
1079 | ArtistAmerica
1080 | AlbumGreatest Hits
1081 | GenreEasy Listening
1082 | KindMPEG audio file
1083 | Size3753347
1084 | Total Time187559
1085 | Track Number2
1086 | Track Count12
1087 | Date Modified2006-02-14T16:20:44Z
1088 | Date Added2006-02-14T16:20:36Z
1089 | Bit Rate160
1090 | Sample Rate44100
1091 | Play Count52
1092 | Play Date3528446011
1093 | Play Date UTC2015-10-23T15:53:31Z
1094 | Skip Count1
1095 | Skip Date2010-04-26T22:57:59Z
1096 | Rating100
1097 | Album Rating100
1098 | Album Rating Computed
1099 | Normalization656
1100 | Persistent ID21130E105F3B8866
1101 | Track TypeFile
1102 | File Type1297106739
1103 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/America/Greatest%20Hits/02%20Now%20You%20Are%20Gone.mp3
1104 | File Folder Count4
1105 | Library Folder Count1
1106 |
1107 | 433
1108 |
1109 | Track ID433
1110 | NameOutside The Wall
1111 | ArtistPink Floyd
1112 | ComposerRoger Waters
1113 | AlbumThe Wall [Disc 2]
1114 | GenreRock
1115 | KindMPEG audio file
1116 | Size2090965
1117 | Total Time104437
1118 | Disc Number2
1119 | Disc Count2
1120 | Track Number13
1121 | Track Count13
1122 | Year1979
1123 | Date Modified2006-02-14T16:20:59Z
1124 | Date Added2006-02-14T16:20:55Z
1125 | Bit Rate160
1126 | Sample Rate44100
1127 | Play Count16
1128 | Play Date3514729899
1129 | Play Date UTC2015-05-17T21:51:39Z
1130 | Skip Count3
1131 | Skip Date2008-08-18T21:29:02Z
1132 | Rating100
1133 | Album Rating100
1134 | Album Rating Computed
1135 | Normalization35
1136 | Sort AlbumWall [Disc 2]
1137 | Persistent ID21130E105F3B8868
1138 | Track TypeFile
1139 | File Type1297106739
1140 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Pink%20Floyd/The%20Wall%20%5BDisc%202%5D/2-13%20Outside%20The%20Wall.mp3
1141 | File Folder Count4
1142 | Library Folder Count1
1143 |
1144 | 435
1145 |
1146 | Track ID435
1147 | NameParanoid
1148 | ArtistBlack Sabbath
1149 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
1150 | AlbumParanoid
1151 | GenreMetal
1152 | KindMPEG audio file
1153 | Size3460848
1154 | Total Time172930
1155 | Disc Number1
1156 | Disc Count1
1157 | Track Number2
1158 | Track Count8
1159 | Year1970
1160 | Date Modified2006-02-22T01:48:18Z
1161 | Date Added2006-02-14T16:21:00Z
1162 | Bit Rate160
1163 | Sample Rate44100
1164 | Play Count36
1165 | Play Date3503420316
1166 | Play Date UTC2015-01-07T01:18:36Z
1167 | Rating100
1168 | Album Rating100
1169 | Album Rating Computed
1170 | Normalization922
1171 | Persistent ID21130E105F3B8869
1172 | Track TypeFile
1173 | File Type1297106739
1174 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/02%20Paranoid.mp3
1175 | File Folder Count4
1176 | Library Folder Count1
1177 |
1178 | 437
1179 |
1180 | Track ID437
1181 | NamePlanet Caravan
1182 | ArtistBlack Sabbath
1183 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
1184 | AlbumParanoid
1185 | GenreMetal
1186 | KindMPEG audio file
1187 | Size5501017
1188 | Total Time274938
1189 | Disc Number1
1190 | Disc Count1
1191 | Track Number3
1192 | Track Count8
1193 | Year1970
1194 | Date Modified2006-02-22T01:48:59Z
1195 | Date Added2006-02-14T16:21:09Z
1196 | Bit Rate160
1197 | Sample Rate44100
1198 | Play Count38
1199 | Play Date3503420591
1200 | Play Date UTC2015-01-07T01:23:11Z
1201 | Skip Count1
1202 | Skip Date2007-03-26T12:20:03Z
1203 | Rating100
1204 | Album Rating100
1205 | Album Rating Computed
1206 | Normalization461
1207 | Persistent ID21130E105F3B886A
1208 | Track TypeFile
1209 | File Type1297106739
1210 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/03%20Planet%20Caravan.mp3
1211 | File Folder Count4
1212 | Library Folder Count1
1213 |
1214 | 439
1215 |
1216 | Track ID439
1217 | NamePretty Jeanie
1218 | ArtistBryan Lee
1219 | AlbumBlues Is
1220 | GenreBlues/R&B
1221 | KindMPEG audio file
1222 | Size4505673
1223 | Total Time225175
1224 | Track Number10
1225 | Track Count12
1226 | Date Modified2006-02-14T16:21:32Z
1227 | Date Added2006-02-14T16:21:23Z
1228 | Bit Rate160
1229 | Sample Rate44100
1230 | Play Count34
1231 | Play Date3502812757
1232 | Play Date UTC2014-12-31T00:32:37Z
1233 | Skip Count1
1234 | Skip Date2013-10-21T00:07:34Z
1235 | Rating100
1236 | Album Rating100
1237 | Album Rating Computed
1238 | Normalization4946
1239 | Persistent ID21130E105F3B886B
1240 | Track TypeFile
1241 | File Type1297106739
1242 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Bryan%20Lee/Blues%20Is/10%20Pretty%20Jeanie.mp3
1243 | File Folder Count4
1244 | Library Folder Count1
1245 |
1246 | 441
1247 |
1248 | Track ID441
1249 | NameRammstein
1250 | ArtistRammstein
1251 | ComposerChristoph Doom Schneider, Doktor Christian Lorenz, Oliver Riedel, Paul Landers, Richard Z. Kruspe-Bernstein & Till Lindemann
1252 | AlbumHerzeleid
1253 | GenreIndustrial
1254 | KindMPEG audio file
1255 | Size5304122
1256 | Total Time265090
1257 | Disc Number1
1258 | Disc Count1
1259 | Track Number11
1260 | Track Count11
1261 | Year1995
1262 | Date Modified2011-11-18T19:28:29Z
1263 | Date Added2006-02-14T16:21:34Z
1264 | Bit Rate160
1265 | Sample Rate44100
1266 | Play Count45
1267 | Play Date3489331767
1268 | Play Date UTC2014-07-27T22:49:27Z
1269 | Skip Count3
1270 | Skip Date2013-09-21T01:55:34Z
1271 | Rating100
1272 | Album Rating100
1273 | Album Rating Computed
1274 | Normalization4060
1275 | Persistent ID21130E105F3B886C
1276 | Track TypeFile
1277 | File Type1297106739
1278 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Rammstein/Herzeleid/11%20Rammstein.mp3
1279 | File Folder Count4
1280 | Library Folder Count1
1281 |
1282 | 443
1283 |
1284 | Track ID443
1285 | NameRat Salad
1286 | ArtistBlack Sabbath
1287 | ComposerTony Iommi, Ozzy Osbourne, Geezer Butler, Bill Ward
1288 | AlbumParanoid
1289 | GenreMetal
1290 | KindMPEG audio file
1291 | Size3006841
1292 | Total Time150230
1293 | Disc Number1
1294 | Disc Count1
1295 | Track Number7
1296 | Track Count8
1297 | Year1970
1298 | Date Modified2006-02-22T01:51:32Z
1299 | Date Added2006-02-14T16:21:47Z
1300 | Bit Rate160
1301 | Sample Rate44100
1302 | Play Count46
1303 | Play Date3472742136
1304 | Play Date UTC2014-01-16T23:35:36Z
1305 | Rating100
1306 | Album Rating100
1307 | Album Rating Computed
1308 | Normalization451
1309 | Persistent ID21130E105F3B886F
1310 | Track TypeFile
1311 | File Type1297106739
1312 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Black%20Sabbath/Paranoid/07%20Rat%20Salad.mp3
1313 | File Folder Count4
1314 | Library Folder Count1
1315 |
1316 | 445
1317 |
1318 | Track ID445
1319 | NameRock & Roll
1320 | ArtistLed Zeppelin
1321 | ComposerJimmy Page, Robert Plant, John Paul Jones, John Bonham
1322 | AlbumIV
1323 | GenreRock
1324 | KindMPEG audio file
1325 | Size4420064
1326 | Total Time220891
1327 | Disc Number1
1328 | Disc Count1
1329 | Track Number2
1330 | Track Count8
1331 | Year1971
1332 | Date Modified2006-02-14T16:24:40Z
1333 | Date Added2006-02-14T16:24:31Z
1334 | Bit Rate160
1335 | Sample Rate44100
1336 | Play Count109
1337 | Play Date3503062355
1338 | Play Date UTC2015-01-02T21:52:35Z
1339 | Rating100
1340 | Album Rating100
1341 | Album Rating Computed
1342 | Normalization1425
1343 | Persistent ID21130E105F3B8871
1344 | Track TypeFile
1345 | File Type1297106739
1346 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Led%20Zeppelin/IV/02%20Rock%20&%20Roll.mp3
1347 | File Folder Count4
1348 | Library Folder Count1
1349 |
1350 | 447
1351 |
1352 | Track ID447
1353 | NameRode Across the Desert
1354 | ArtistAmerica
1355 | AlbumGreatest Hits
1356 | GenreEasy Listening
1357 | KindMPEG audio file
1358 | Size4999916
1359 | Total Time249887
1360 | Track Number1
1361 | Track Count12
1362 | Date Modified2006-02-14T16:24:53Z
1363 | Date Added2006-02-14T16:24:42Z
1364 | Bit Rate160
1365 | Sample Rate44100
1366 | Play Count60
1367 | Play Date3528445823
1368 | Play Date UTC2015-10-23T15:50:23Z
1369 | Skip Count2
1370 | Skip Date2014-02-26T14:21:42Z
1371 | Rating100
1372 | Album Rating100
1373 | Album Rating Computed
1374 | Normalization964
1375 | Persistent ID21130E105F3B8872
1376 | Track TypeFile
1377 | File Type1297106739
1378 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/America/Greatest%20Hits/01%20Rode%20Across%20the%20Desert.mp3
1379 | File Folder Count4
1380 | Library Folder Count1
1381 |
1382 | 449
1383 |
1384 | Track ID449
1385 | NameSandy
1386 | ArtistVarious
1387 | AlbumGrease
1388 | GenreSoundtrack
1389 | KindMPEG audio file
1390 | Size3116986
1391 | Total Time155742
1392 | Track Number5
1393 | Track Count24
1394 | Date Modified2006-02-14T16:25:01Z
1395 | Date Added2006-02-14T16:24:54Z
1396 | Bit Rate160
1397 | Sample Rate44100
1398 | Play Count36
1399 | Play Date3478190630
1400 | Play Date UTC2014-03-21T00:03:50Z
1401 | Rating100
1402 | Album Rating100
1403 | Album Rating Computed
1404 | Normalization1739
1405 | Persistent ID21130E105F3B8873
1406 | Track TypeFile
1407 | File Type1297106739
1408 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Various/Grease/05%20Sandy.mp3
1409 | File Folder Count4
1410 | Library Folder Count1
1411 |
1412 | 451
1413 |
1414 | Track ID451
1415 | NameShake Your Foundations
1416 | ArtistAC/DC
1417 | AlbumWho Made Who
1418 | GenreRock
1419 | KindMPEG audio file
1420 | Size4677593
1421 | Total Time233769
1422 | Disc Number1
1423 | Disc Count1
1424 | Track Number7
1425 | Track Count9
1426 | Year1985
1427 | Date Modified2006-02-22T04:15:26Z
1428 | Date Added2006-02-14T16:25:02Z
1429 | Bit Rate160
1430 | Sample Rate44100
1431 | Play Count85
1432 | Play Date3396883263
1433 | Play Date UTC2011-08-22T22:41:03Z
1434 | Skip Count1
1435 | Skip Date2007-09-22T13:56:48Z
1436 | Rating100
1437 | Album Rating100
1438 | Album Rating Computed
1439 | Normalization13346
1440 | Compilation
1441 | Persistent ID21130E105F3B8874
1442 | Track TypeFile
1443 | File Type1297106739
1444 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/Compilations/Who%20Made%20Who/07%20Shake%20Your%20Foundations.mp3
1445 | File Folder Count4
1446 | Library Folder Count1
1447 |
1448 | 453
1449 |
1450 | Track ID453
1451 | NameSister Golden Hair
1452 | ArtistAmerica
1453 | AlbumGreatest Hits
1454 | GenreEasy Listening
1455 | KindMPEG audio file
1456 | Size4043309
1457 | Total Time202057
1458 | Track Number10
1459 | Track Count12
1460 | Date Modified2006-02-14T16:25:26Z
1461 | Date Added2006-02-14T16:25:15Z
1462 | Bit Rate160
1463 | Sample Rate44100
1464 | Play Count60
1465 | Play Date3528445364
1466 | Play Date UTC2015-10-23T15:42:44Z
1467 | Skip Count1
1468 | Skip Date2010-04-26T22:58:16Z
1469 | Rating100
1470 | Album Rating100
1471 | Album Rating Computed
1472 | Normalization1246
1473 | Persistent ID21130E105F3B8875
1474 | Track TypeFile
1475 | File Type1297106739
1476 | Locationfile:///Users/csev/Music/iTunes/iTunes%20Music/America/Greatest%20Hits/10%20Sister%20Golden%20Hair.mp3
1477 | File Folder Count4
1478 | Library Folder Count1
1479 |
1480 | 455
1481 |
1482 | Track ID455
1483 | NameSomebody To Love
1484 | ArtistQueen
1485 | ComposerFreddie Mercury
1486 | AlbumGreatest Hits
1487 | GenreRock
1488 | KindMPEG audio file
1489 | Size5953955
1490 | Total Time297586
1491 | Disc Number1
1492 | Disc Count1
1493 | Track Number5
1494 | Track Count17
1495 | Year1976
1496 | Date Modified2006-02-14T16:25:45Z
1497 | Date Added2006-02-14T16:25:27Z
1498 | Bit Rate160
1499 | Sample Rate44100
1500 | Play Count17
1501 |
--------------------------------------------------------------------------------
/all-python-codes/retri-itunes-data/tracks.py:
--------------------------------------------------------------------------------
1 | # import xml library into the python code
2 | import xml.etree.ElementTree as ET
3 |
4 | fname = input('Enter file name: ')
5 |
6 | # Track ID369
7 | # NameAnother One Bites The Dust
8 | # ArtistQueen
9 |
10 | # defined lookup
11 | def lookup(d, key):
12 | found = False
13 | for child in d:
14 | if found : return child.text
15 | if child.tag == 'key' and child.text == key :
16 | found = True
17 | return None
18 |
19 | #parsing using the xml library
20 | stuff = ET.parse(fname)
21 | all = stuff.findall('dict/dict/dict')
22 | print('Dict count:', len(all))
23 | for entry in all:
24 | if( lookup(entry, 'Track ID') is None ) : continue
25 |
26 | # getting the output desired
27 | name = lookup(entry, 'Name')
28 | artist = lookup(entry, 'Artist')
29 | album = lookup(entry, 'Album')
30 | count = lookup(entry, 'Play Count')
31 | rating = lookup(entry, 'Rating')
32 | length = lookup(entry, 'Total Time')
33 |
34 | #if any of the data lack one of these, ignore!
35 | if name is None or artist is None or album is None :
36 | continue
37 |
38 | print(name, artist, album, count, rating, length)
39 |
--------------------------------------------------------------------------------
/all-python-codes/retri-itunes-data/tracksc.py:
--------------------------------------------------------------------------------
1 | # commenting on this,would be complicated and difficullt understand
2 | # If you really need it, do well to make researches on it
3 | import xml.etree.ElementTree as ET
4 | import sqlite3
5 |
6 | conn = sqlite3.connect('tracksc.sqlite')
7 | cur = conn.cursor()
8 |
9 | # Make some fresh tables using executescript()
10 | cur.executescript('''
11 | DROP TABLE IF EXISTS Artist;
12 | DROP TABLE IF EXISTS Album;
13 | DROP TABLE IF EXISTS Genre;
14 | DROP TABLE IF EXISTS Track;
15 |
16 | CREATE TABLE Artist (
17 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
18 | name TEXT UNIQUE
19 | );
20 |
21 | CREATE TABLE Album (
22 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
23 | artist_id INTEGER,
24 | name TEXT UNIQUE
25 | );
26 |
27 | CREATE TABLE Genre (
28 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
29 | name TEXT UNIQUE
30 | );
31 |
32 | CREATE TABLE Track (
33 | id INTEGER NOT NULL PRIMARY KEY
34 | AUTOINCREMENT UNIQUE,
35 | title TEXT UNIQUE,
36 | album_id INTEGER,
37 | genre_id INTEGER,
38 | len INTEGER, rating INTEGER, count INTEGER
39 | );
40 | ''')
41 |
42 |
43 | fname = input('Enter file name: ')
44 | if ( len(fname) < 1 ) : fname = 'Library.xml'
45 |
46 | # Track ID369
47 | # NameAnother One Bites The Dust
48 | # ArtistQueen
49 | def lookup(d, key):
50 | found = False
51 | for child in d:
52 | if found : return child.text
53 | if child.tag == 'key' and child.text == key :
54 | found = True
55 | return None
56 |
57 | stuff = ET.parse(fname)
58 | all = stuff.findall('dict/dict/dict')
59 | print('Dict count:', len(all))
60 | for entry in all:
61 | if ( lookup(entry, 'Track ID') is None ) : continue
62 |
63 | name = lookup(entry, 'Name')
64 | artist = lookup(entry, 'Artist')
65 | album = lookup(entry, 'Album')
66 | genre = lookup(entry, 'Genre')
67 | count = lookup(entry, 'Play Count')
68 | rating = lookup(entry, 'Rating')
69 | length = lookup(entry, 'Total Time')
70 |
71 | if name is None or artist is None or genre is None or album is None:
72 | continue
73 |
74 | print (name, artist, album, genre, count, rating, length)
75 |
76 | cur.execute('''INSERT OR IGNORE INTO Artist (name)
77 | VALUES ( ? )''', ( artist, ) )
78 | cur.execute('SELECT id FROM Artist WHERE name = ? ', (artist, ))
79 | artist_id = cur.fetchone()[0]
80 |
81 | cur.execute('''INSERT OR IGNORE INTO Album (name, artist_id)
82 | VALUES ( ?, ? )''', ( album, artist_id ) )
83 | cur.execute('SELECT id FROM Album WHERE name = ? ', (album, ))
84 | album_id = cur.fetchone()[0]
85 |
86 | cur.execute('''INSERT OR IGNORE INTO Genre (name)
87 | VALUES ( ? )''', ( genre, ) )
88 | cur.execute('SELECT id FROM Genre WHERE name = ? ', (genre, ))
89 | genre_id = cur.fetchone()[0]
90 |
91 | cur.execute('''INSERT OR REPLACE INTO Track
92 | (title, album_id, genre_id, len, rating, count)
93 | VALUES ( ?, ?, ?, ?, ?, ? )''',
94 | ( name, album_id, genre_id, length, rating, count ) )
95 |
96 | conn.commit()
97 |
98 | sqlstr = 'SELECT Track.title, Artist.name, Genre.name, Album.name FROM Track JOIN Artist JOIN Genre JOIN Album ON Album.artist_id = Artist.id AND Track.genre_id = genre.id AND Track.album_id = album.id ORDER BY Artist.name LIMIT 3'
99 |
100 | for row in cur.execute(sqlstr):
101 | print(str(row[0]), row[1], row[2], row[3])
102 |
103 | cur.close()
104 |
--------------------------------------------------------------------------------
/all-python-codes/retrieve-school-data/README.md:
--------------------------------------------------------------------------------
1 | # Retrieval of data from a json
2 | This function and primary aim of this repo is to retrieve data from a json(data) file
3 |
4 | - ## [rosterdb.py](https://github.com/chryzcodez/py-projects/blob/master/all-python-codes/retrieve-school-data/rosterdb.py)
5 | The other python file `rosterdb.py` is python code with a bit of sqlite. This code is to retrieve your data and store it into an sqlite database for later use. To use this you need to download an sqlite browser [here](https://sqlitebrowser.org/dl/).
6 |
7 | - ## [rosters.py](https://github.com/chryzcodez/py-projects/blob/master/all-python-codes/retrieve-school-data/rosters.py)
8 | This is same as the the `rosterdb.py` python file except from the sqlite database which this code does not have. You can simply run it on your terminal and get your data without saving any pich of it.
9 |
10 | - ## [roster_data.json](https://github.com/chryzcodez/py-projects/blob/master/all-python-codes/retrieve-school-data/roster_data.json)
11 | **Note:**_This file was made available for the tweaking and test-running of the python codes/ program made available in this repo!
12 |
13 | This is a json file that is filled with data in which we are going to be parsing and printing out our desired piece of data/ information needed or intented.
14 | ```json
15 | [
16 | "Gaia",
17 | "si110",
18 | 1
19 | ],
20 | [
21 | "Rio",
22 | "si110",
23 | 0
24 | ]
25 | ```
26 | A block of the json code/ program is exactly like this code snippet above.
27 | - **"Gaia"**: Is represented here as the name of a teacher.
28 | - **"si110"**: is represented as the course taught by the teacher aformentioned.
29 | - **"1"**: is represented as here as a tescher's post
30 | - **"0"**: is represented as here as the post of a student
31 |
32 |
--------------------------------------------------------------------------------
/all-python-codes/retrieve-school-data/roster_data.json:
--------------------------------------------------------------------------------
1 | [
2 | [
3 | "Gaia",
4 | "si110",
5 | 1
6 | ],
7 | [
8 | "Rio",
9 | "si110",
10 | 0
11 | ],
12 | [
13 | "Stanley",
14 | "si110",
15 | 0
16 | ],
17 | [
18 | "Lene",
19 | "si110",
20 | 0
21 | ],
22 | [
23 | "Kenzi",
24 | "si110",
25 | 0
26 | ],
27 | [
28 | "Shaun",
29 | "si110",
30 | 0
31 | ],
32 | [
33 | "Pawlo",
34 | "si110",
35 | 0
36 | ],
37 | [
38 | "Kames",
39 | "si110",
40 | 0
41 | ],
42 | [
43 | "Mirran",
44 | "si110",
45 | 0
46 | ],
47 | [
48 | "Dhavid",
49 | "si110",
50 | 0
51 | ],
52 | [
53 | "Bailie",
54 | "si110",
55 | 0
56 | ],
57 | [
58 | "Teighen",
59 | "si110",
60 | 0
61 | ],
62 | [
63 | "Avesta",
64 | "si110",
65 | 0
66 | ],
67 | [
68 | "Blazej",
69 | "si110",
70 | 0
71 | ],
72 | [
73 | "Raimee",
74 | "si110",
75 | 0
76 | ],
77 | [
78 | "Kash",
79 | "si110",
80 | 0
81 | ],
82 | [
83 | "Shanzay",
84 | "si110",
85 | 0
86 | ],
87 | [
88 | "Pierce",
89 | "si110",
90 | 0
91 | ],
92 | [
93 | "Sahara",
94 | "si110",
95 | 0
96 | ],
97 | [
98 | "Kaleena",
99 | "si110",
100 | 0
101 | ],
102 | [
103 | "Keir",
104 | "si110",
105 | 0
106 | ],
107 | [
108 | "Sherese",
109 | "si110",
110 | 0
111 | ],
112 | [
113 | "Xin",
114 | "si110",
115 | 0
116 | ],
117 | [
118 | "Jura",
119 | "si110",
120 | 0
121 | ],
122 | [
123 | "Heyden",
124 | "si110",
125 | 0
126 | ],
127 | [
128 | "Shannon",
129 | "si110",
130 | 0
131 | ],
132 | [
133 | "Jaslyn",
134 | "si110",
135 | 0
136 | ],
137 | [
138 | "Dylin",
139 | "si110",
140 | 0
141 | ],
142 | [
143 | "Vladislav",
144 | "si110",
145 | 0
146 | ],
147 | [
148 | "Kori",
149 | "si110",
150 | 0
151 | ],
152 | [
153 | "Malia",
154 | "si110",
155 | 0
156 | ],
157 | [
158 | "Sharilee",
159 | "si110",
160 | 0
161 | ],
162 | [
163 | "Fruin",
164 | "si110",
165 | 0
166 | ],
167 | [
168 | "Daithi",
169 | "si110",
170 | 0
171 | ],
172 | [
173 | "Naif",
174 | "si110",
175 | 0
176 | ],
177 | [
178 | "Will",
179 | "si110",
180 | 0
181 | ],
182 | [
183 | "Dorothy",
184 | "si110",
185 | 0
186 | ],
187 | [
188 | "Alyssa",
189 | "si110",
190 | 0
191 | ],
192 | [
193 | "Robbie",
194 | "si106",
195 | 1
196 | ],
197 | [
198 | "Prabhjot",
199 | "si106",
200 | 0
201 | ],
202 | [
203 | "Koushik",
204 | "si106",
205 | 0
206 | ],
207 | [
208 | "Hopkin",
209 | "si106",
210 | 0
211 | ],
212 | [
213 | "Kariss",
214 | "si106",
215 | 0
216 | ],
217 | [
218 | "Madeline",
219 | "si106",
220 | 0
221 | ],
222 | [
223 | "Brody",
224 | "si106",
225 | 0
226 | ],
227 | [
228 | "Cormac",
229 | "si106",
230 | 0
231 | ],
232 | [
233 | "Luqman",
234 | "si106",
235 | 0
236 | ],
237 | [
238 | "Ashbey",
239 | "si106",
240 | 0
241 | ],
242 | [
243 | "Meagan",
244 | "si106",
245 | 0
246 | ],
247 | [
248 | "Samy",
249 | "si106",
250 | 0
251 | ],
252 | [
253 | "Islah",
254 | "si106",
255 | 0
256 | ],
257 | [
258 | "Kate",
259 | "si106",
260 | 0
261 | ],
262 | [
263 | "Noor",
264 | "si106",
265 | 0
266 | ],
267 | [
268 | "Reilly",
269 | "si106",
270 | 0
271 | ],
272 | [
273 | "Mindi",
274 | "si106",
275 | 0
276 | ],
277 | [
278 | "Sherwyn",
279 | "si106",
280 | 0
281 | ],
282 | [
283 | "Emmajane",
284 | "si106",
285 | 0
286 | ],
287 | [
288 | "Aditya",
289 | "si106",
290 | 0
291 | ],
292 | [
293 | "Kasja",
294 | "si106",
295 | 0
296 | ],
297 | [
298 | "Axel",
299 | "si106",
300 | 0
301 | ],
302 | [
303 | "Bradly",
304 | "si106",
305 | 0
306 | ],
307 | [
308 | "Niteesha",
309 | "si106",
310 | 0
311 | ],
312 | [
313 | "Joeddy",
314 | "si106",
315 | 0
316 | ],
317 | [
318 | "Tiffany",
319 | "si106",
320 | 0
321 | ],
322 | [
323 | "Nawel",
324 | "si106",
325 | 0
326 | ],
327 | [
328 | "Leilani",
329 | "si106",
330 | 0
331 | ],
332 | [
333 | "Jabin",
334 | "si106",
335 | 0
336 | ],
337 | [
338 | "Kaycie",
339 | "si106",
340 | 0
341 | ],
342 | [
343 | "Shyam",
344 | "si106",
345 | 0
346 | ],
347 | [
348 | "Shayna",
349 | "si106",
350 | 0
351 | ],
352 | [
353 | "Marcos",
354 | "si106",
355 | 0
356 | ],
357 | [
358 | "Kealon",
359 | "si106",
360 | 0
361 | ],
362 | [
363 | "Aytug",
364 | "si106",
365 | 0
366 | ],
367 | [
368 | "Cuillin",
369 | "si106",
370 | 0
371 | ],
372 | [
373 | "Chantelle",
374 | "si106",
375 | 0
376 | ],
377 | [
378 | "Findlay",
379 | "si106",
380 | 0
381 | ],
382 | [
383 | "Sol",
384 | "si106",
385 | 0
386 | ],
387 | [
388 | "Ala",
389 | "si106",
390 | 0
391 | ],
392 | [
393 | "Blythe",
394 | "si106",
395 | 0
396 | ],
397 | [
398 | "Rhia",
399 | "si106",
400 | 0
401 | ],
402 | [
403 | "Foosiya",
404 | "si106",
405 | 0
406 | ],
407 | [
408 | "Marianne",
409 | "si106",
410 | 0
411 | ],
412 | [
413 | "Meryem",
414 | "si106",
415 | 0
416 | ],
417 | [
418 | "Camerin",
419 | "si106",
420 | 0
421 | ],
422 | [
423 | "Calan",
424 | "si106",
425 | 0
426 | ],
427 | [
428 | "Claudia",
429 | "si106",
430 | 0
431 | ],
432 | [
433 | "Ciar",
434 | "si106",
435 | 0
436 | ],
437 | [
438 | "Saif",
439 | "si106",
440 | 0
441 | ],
442 | [
443 | "Kaedyn",
444 | "si106",
445 | 0
446 | ],
447 | [
448 | "Koby",
449 | "si206",
450 | 1
451 | ],
452 | [
453 | "Levy",
454 | "si206",
455 | 0
456 | ],
457 | [
458 | "Chala",
459 | "si206",
460 | 0
461 | ],
462 | [
463 | "Callie",
464 | "si206",
465 | 0
466 | ],
467 | [
468 | "Jaying",
469 | "si206",
470 | 0
471 | ],
472 | [
473 | "Mika",
474 | "si206",
475 | 0
476 | ],
477 | [
478 | "Jordanna",
479 | "si206",
480 | 0
481 | ],
482 | [
483 | "Anselm",
484 | "si206",
485 | 0
486 | ],
487 | [
488 | "Lockey",
489 | "si206",
490 | 0
491 | ],
492 | [
493 | "Caelen",
494 | "si206",
495 | 0
496 | ],
497 | [
498 | "Naina",
499 | "si206",
500 | 0
501 | ],
502 | [
503 | "Aden",
504 | "si206",
505 | 0
506 | ],
507 | [
508 | "Leila",
509 | "si206",
510 | 0
511 | ],
512 | [
513 | "Claudia",
514 | "si206",
515 | 0
516 | ],
517 | [
518 | "Jincheng",
519 | "si206",
520 | 0
521 | ],
522 | [
523 | "Maddison",
524 | "si206",
525 | 0
526 | ],
527 | [
528 | "Jamielee",
529 | "si206",
530 | 0
531 | ],
532 | [
533 | "Tanith",
534 | "si206",
535 | 0
536 | ],
537 | [
538 | "Kaan",
539 | "si206",
540 | 0
541 | ],
542 | [
543 | "Queeneffa",
544 | "si206",
545 | 0
546 | ],
547 | [
548 | "Shinade",
549 | "si206",
550 | 0
551 | ],
552 | [
553 | "Cariss",
554 | "si206",
555 | 0
556 | ],
557 | [
558 | "Samar",
559 | "si206",
560 | 0
561 | ],
562 | [
563 | "Farhan",
564 | "si206",
565 | 0
566 | ],
567 | [
568 | "Ellen",
569 | "si206",
570 | 0
571 | ],
572 | [
573 | "Rhudi",
574 | "si301",
575 | 1
576 | ],
577 | [
578 | "Lorenzo",
579 | "si301",
580 | 0
581 | ],
582 | [
583 | "Almirah",
584 | "si301",
585 | 0
586 | ],
587 | [
588 | "Nagib",
589 | "si301",
590 | 0
591 | ],
592 | [
593 | "Aytug",
594 | "si301",
595 | 0
596 | ],
597 | [
598 | "Ashton",
599 | "si301",
600 | 0
601 | ],
602 | [
603 | "Evan",
604 | "si301",
605 | 0
606 | ],
607 | [
608 | "Cassieleigh",
609 | "si301",
610 | 0
611 | ],
612 | [
613 | "Jewel",
614 | "si301",
615 | 0
616 | ],
617 | [
618 | "Nicole",
619 | "si301",
620 | 0
621 | ],
622 | [
623 | "Bradyn",
624 | "si301",
625 | 0
626 | ],
627 | [
628 | "Asrar",
629 | "si301",
630 | 0
631 | ],
632 | [
633 | "Jonson",
634 | "si301",
635 | 0
636 | ],
637 | [
638 | "Issiaka",
639 | "si301",
640 | 0
641 | ],
642 | [
643 | "Nico",
644 | "si301",
645 | 0
646 | ],
647 | [
648 | "Bohbi",
649 | "si301",
650 | 0
651 | ],
652 | [
653 | "Carmyle",
654 | "si301",
655 | 0
656 | ],
657 | [
658 | "Phebe",
659 | "si301",
660 | 0
661 | ],
662 | [
663 | "Niomi",
664 | "si301",
665 | 0
666 | ],
667 | [
668 | "Peter",
669 | "si301",
670 | 0
671 | ],
672 | [
673 | "Iman",
674 | "si301",
675 | 0
676 | ],
677 | [
678 | "Eleni",
679 | "si301",
680 | 0
681 | ],
682 | [
683 | "Breeanna",
684 | "si301",
685 | 0
686 | ],
687 | [
688 | "Morwen",
689 | "si301",
690 | 0
691 | ],
692 | [
693 | "Cadhla",
694 | "si301",
695 | 0
696 | ],
697 | [
698 | "Caitlynn",
699 | "si301",
700 | 0
701 | ],
702 | [
703 | "Nur",
704 | "si310",
705 | 1
706 | ],
707 | [
708 | "Spondon",
709 | "si310",
710 | 0
711 | ],
712 | [
713 | "Rhys",
714 | "si310",
715 | 0
716 | ],
717 | [
718 | "Fatimah",
719 | "si310",
720 | 0
721 | ],
722 | [
723 | "Elsa",
724 | "si310",
725 | 0
726 | ],
727 | [
728 | "Alfy",
729 | "si310",
730 | 0
731 | ],
732 | [
733 | "Eagann",
734 | "si310",
735 | 0
736 | ],
737 | [
738 | "Merissa",
739 | "si310",
740 | 0
741 | ],
742 | [
743 | "Elvita",
744 | "si310",
745 | 0
746 | ],
747 | [
748 | "Xin",
749 | "si310",
750 | 0
751 | ],
752 | [
753 | "Arnab",
754 | "si310",
755 | 0
756 | ],
757 | [
758 | "Dissanayake",
759 | "si310",
760 | 0
761 | ],
762 | [
763 | "Reiss",
764 | "si310",
765 | 0
766 | ],
767 | [
768 | "Francisco",
769 | "si310",
770 | 0
771 | ],
772 | [
773 | "Sasha",
774 | "si310",
775 | 0
776 | ],
777 | [
778 | "Analyse",
779 | "si310",
780 | 0
781 | ],
782 | [
783 | "Jules",
784 | "si310",
785 | 0
786 | ],
787 | [
788 | "Qandeel",
789 | "si310",
790 | 0
791 | ],
792 | [
793 | "Morgen",
794 | "si310",
795 | 0
796 | ],
797 | [
798 | "Bracken",
799 | "si310",
800 | 0
801 | ],
802 | [
803 | "Maxwell",
804 | "si310",
805 | 0
806 | ],
807 | [
808 | "Malachy",
809 | "si310",
810 | 0
811 | ],
812 | [
813 | "Fearn",
814 | "si310",
815 | 0
816 | ],
817 | [
818 | "Lorcan",
819 | "si310",
820 | 0
821 | ],
822 | [
823 | "Morvern",
824 | "si310",
825 | 0
826 | ],
827 | [
828 | "Arya",
829 | "si310",
830 | 0
831 | ],
832 | [
833 | "Sarabeth",
834 | "si310",
835 | 0
836 | ],
837 | [
838 | "Limo",
839 | "si310",
840 | 0
841 | ],
842 | [
843 | "Hong",
844 | "si310",
845 | 0
846 | ],
847 | [
848 | "Arabella",
849 | "si310",
850 | 0
851 | ],
852 | [
853 | "Imogen",
854 | "si310",
855 | 0
856 | ],
857 | [
858 | "Mitzi",
859 | "si310",
860 | 0
861 | ],
862 | [
863 | "Dara",
864 | "si310",
865 | 0
866 | ],
867 | [
868 | "Daanyaal",
869 | "si310",
870 | 0
871 | ],
872 | [
873 | "Tillie",
874 | "si310",
875 | 0
876 | ],
877 | [
878 | "Lenon",
879 | "si310",
880 | 0
881 | ],
882 | [
883 | "Kyan",
884 | "si310",
885 | 0
886 | ],
887 | [
888 | "Caragh",
889 | "si310",
890 | 0
891 | ],
892 | [
893 | "Arda",
894 | "si310",
895 | 0
896 | ],
897 | [
898 | "Aphra",
899 | "si310",
900 | 0
901 | ],
902 | [
903 | "Zuzanna",
904 | "si310",
905 | 0
906 | ],
907 | [
908 | "Mateusz",
909 | "si310",
910 | 0
911 | ],
912 | [
913 | "Nayan",
914 | "si310",
915 | 0
916 | ],
917 | [
918 | "Colt",
919 | "si310",
920 | 0
921 | ],
922 | [
923 | "Ferre",
924 | "si310",
925 | 0
926 | ],
927 | [
928 | "Faye",
929 | "si310",
930 | 0
931 | ],
932 | [
933 | "Beraka",
934 | "si310",
935 | 0
936 | ],
937 | [
938 | "Possum",
939 | "si310",
940 | 0
941 | ],
942 | [
943 | "Ashleen",
944 | "si310",
945 | 0
946 | ],
947 | [
948 | "Joanna",
949 | "si310",
950 | 0
951 | ],
952 | [
953 | "Nelly",
954 | "si310",
955 | 0
956 | ],
957 | [
958 | "Crombie",
959 | "si310",
960 | 0
961 | ],
962 | [
963 | "Damla",
964 | "si334",
965 | 1
966 | ],
967 | [
968 | "Marwah",
969 | "si334",
970 | 0
971 | ],
972 | [
973 | "Umer",
974 | "si334",
975 | 0
976 | ],
977 | [
978 | "Koby",
979 | "si334",
980 | 0
981 | ],
982 | [
983 | "Cecilia",
984 | "si334",
985 | 0
986 | ],
987 | [
988 | "Devin",
989 | "si334",
990 | 0
991 | ],
992 | [
993 | "Edwyn",
994 | "si334",
995 | 0
996 | ],
997 | [
998 | "Toluwanimi",
999 | "si334",
1000 | 0
1001 | ],
1002 | [
1003 | "Anya",
1004 | "si334",
1005 | 0
1006 | ],
1007 | [
1008 | "Otilia",
1009 | "si334",
1010 | 0
1011 | ],
1012 | [
1013 | "Ayrton",
1014 | "si334",
1015 | 0
1016 | ],
1017 | [
1018 | "Marcos",
1019 | "si334",
1020 | 0
1021 | ],
1022 | [
1023 | "Jared",
1024 | "si334",
1025 | 0
1026 | ],
1027 | [
1028 | "Elwyn",
1029 | "si334",
1030 | 0
1031 | ],
1032 | [
1033 | "Soham",
1034 | "si334",
1035 | 0
1036 | ],
1037 | [
1038 | "Keeton",
1039 | "si334",
1040 | 0
1041 | ],
1042 | [
1043 | "Dacia",
1044 | "si334",
1045 | 0
1046 | ],
1047 | [
1048 | "Nidba",
1049 | "si334",
1050 | 0
1051 | ],
1052 | [
1053 | "Aaliyah",
1054 | "si334",
1055 | 0
1056 | ],
1057 | [
1058 | "Mhirren",
1059 | "si334",
1060 | 0
1061 | ],
1062 | [
1063 | "Majid",
1064 | "si334",
1065 | 0
1066 | ],
1067 | [
1068 | "Msughter",
1069 | "si334",
1070 | 0
1071 | ],
1072 | [
1073 | "Ailsa",
1074 | "si334",
1075 | 0
1076 | ],
1077 | [
1078 | "Jenson",
1079 | "si334",
1080 | 0
1081 | ],
1082 | [
1083 | "Carris",
1084 | "si334",
1085 | 0
1086 | ],
1087 | [
1088 | "Koral",
1089 | "si334",
1090 | 0
1091 | ],
1092 | [
1093 | "Butali",
1094 | "si334",
1095 | 0
1096 | ],
1097 | [
1098 | "April",
1099 | "si334",
1100 | 0
1101 | ],
1102 | [
1103 | "Jensen",
1104 | "si334",
1105 | 0
1106 | ],
1107 | [
1108 | "Braydon",
1109 | "si334",
1110 | 0
1111 | ],
1112 | [
1113 | "Fajar",
1114 | "si334",
1115 | 0
1116 | ],
1117 | [
1118 | "Darah",
1119 | "si334",
1120 | 0
1121 | ],
1122 | [
1123 | "Choire",
1124 | "si334",
1125 | 0
1126 | ],
1127 | [
1128 | "Jessna",
1129 | "si334",
1130 | 0
1131 | ],
1132 | [
1133 | "Penny",
1134 | "si334",
1135 | 0
1136 | ],
1137 | [
1138 | "Conrad",
1139 | "si334",
1140 | 0
1141 | ],
1142 | [
1143 | "Katelin",
1144 | "si334",
1145 | 0
1146 | ],
1147 | [
1148 | "Myleene",
1149 | "si334",
1150 | 0
1151 | ],
1152 | [
1153 | "Corinn",
1154 | "si334",
1155 | 0
1156 | ],
1157 | [
1158 | "Conli",
1159 | "si363",
1160 | 1
1161 | ],
1162 | [
1163 | "Benedict",
1164 | "si363",
1165 | 0
1166 | ],
1167 | [
1168 | "Yishuka",
1169 | "si363",
1170 | 0
1171 | ],
1172 | [
1173 | "Celia",
1174 | "si363",
1175 | 0
1176 | ],
1177 | [
1178 | "Giuliana",
1179 | "si363",
1180 | 0
1181 | ],
1182 | [
1183 | "Bintou",
1184 | "si363",
1185 | 0
1186 | ],
1187 | [
1188 | "Murdina",
1189 | "si363",
1190 | 0
1191 | ],
1192 | [
1193 | "Raashi",
1194 | "si363",
1195 | 0
1196 | ],
1197 | [
1198 | "Griffin",
1199 | "si363",
1200 | 0
1201 | ],
1202 | [
1203 | "Ryder",
1204 | "si363",
1205 | 0
1206 | ],
1207 | [
1208 | "Elisabeth",
1209 | "si363",
1210 | 0
1211 | ],
1212 | [
1213 | "Imama",
1214 | "si363",
1215 | 0
1216 | ],
1217 | [
1218 | "Oliwier",
1219 | "si363",
1220 | 0
1221 | ],
1222 | [
1223 | "Matia",
1224 | "si363",
1225 | 0
1226 | ],
1227 | [
1228 | "Misba",
1229 | "si363",
1230 | 0
1231 | ],
1232 | [
1233 | "Roba",
1234 | "si363",
1235 | 0
1236 | ],
1237 | [
1238 | "Aslam",
1239 | "si363",
1240 | 0
1241 | ],
1242 | [
1243 | "Lauri",
1244 | "si363",
1245 | 0
1246 | ],
1247 | [
1248 | "Garren",
1249 | "si363",
1250 | 0
1251 | ],
1252 | [
1253 | "Marty",
1254 | "si363",
1255 | 0
1256 | ],
1257 | [
1258 | "Cassidy",
1259 | "si363",
1260 | 0
1261 | ],
1262 | [
1263 | "Guthrie",
1264 | "si363",
1265 | 0
1266 | ],
1267 | [
1268 | "Caelen",
1269 | "si363",
1270 | 0
1271 | ],
1272 | [
1273 | "Rennie",
1274 | "si363",
1275 | 0
1276 | ],
1277 | [
1278 | "Zaheerah",
1279 | "si363",
1280 | 0
1281 | ],
1282 | [
1283 | "Milos",
1284 | "si363",
1285 | 0
1286 | ],
1287 | [
1288 | "Mariesha",
1289 | "si363",
1290 | 0
1291 | ],
1292 | [
1293 | "Lenyn",
1294 | "si363",
1295 | 0
1296 | ],
1297 | [
1298 | "Romana",
1299 | "si363",
1300 | 0
1301 | ],
1302 | [
1303 | "Mitchell",
1304 | "si363",
1305 | 0
1306 | ],
1307 | [
1308 | "Michaella",
1309 | "si363",
1310 | 0
1311 | ],
1312 | [
1313 | "Chaela",
1314 | "si363",
1315 | 0
1316 | ],
1317 | [
1318 | "Mohd",
1319 | "si363",
1320 | 0
1321 | ],
1322 | [
1323 | "Kier",
1324 | "si364",
1325 | 1
1326 | ],
1327 | [
1328 | "Jazmin",
1329 | "si364",
1330 | 0
1331 | ],
1332 | [
1333 | "Malakai",
1334 | "si364",
1335 | 0
1336 | ],
1337 | [
1338 | "Dustin",
1339 | "si364",
1340 | 0
1341 | ],
1342 | [
1343 | "Nichole",
1344 | "si364",
1345 | 0
1346 | ],
1347 | [
1348 | "Arella",
1349 | "si364",
1350 | 0
1351 | ],
1352 | [
1353 | "Hawaa",
1354 | "si364",
1355 | 0
1356 | ],
1357 | [
1358 | "Anureet",
1359 | "si364",
1360 | 0
1361 | ],
1362 | [
1363 | "Dean",
1364 | "si364",
1365 | 0
1366 | ],
1367 | [
1368 | "Jon",
1369 | "si364",
1370 | 0
1371 | ],
1372 | [
1373 | "Sinai",
1374 | "si364",
1375 | 0
1376 | ],
1377 | [
1378 | "Azlan",
1379 | "si364",
1380 | 0
1381 | ],
1382 | [
1383 | "Kharli",
1384 | "si364",
1385 | 0
1386 | ],
1387 | [
1388 | "Bailey",
1389 | "si364",
1390 | 0
1391 | ],
1392 | [
1393 | "Harnek",
1394 | "si364",
1395 | 0
1396 | ],
1397 | [
1398 | "Brianna",
1399 | "si364",
1400 | 0
1401 | ],
1402 | [
1403 | "Cailin",
1404 | "si364",
1405 | 0
1406 | ],
1407 | [
1408 | "Jai",
1409 | "si364",
1410 | 0
1411 | ],
1412 | [
1413 | "Mikael",
1414 | "si364",
1415 | 0
1416 | ],
1417 | [
1418 | "Reis",
1419 | "si364",
1420 | 0
1421 | ],
1422 | [
1423 | "Koby",
1424 | "si364",
1425 | 0
1426 | ],
1427 | [
1428 | "Sanaullah",
1429 | "si364",
1430 | 0
1431 | ],
1432 | [
1433 | "Clayton",
1434 | "si364",
1435 | 0
1436 | ],
1437 | [
1438 | "Abdallah",
1439 | "si422",
1440 | 1
1441 | ],
1442 | [
1443 | "Israel",
1444 | "si422",
1445 | 0
1446 | ],
1447 | [
1448 | "Lia",
1449 | "si422",
1450 | 0
1451 | ],
1452 | [
1453 | "Manmohan",
1454 | "si422",
1455 | 0
1456 | ],
1457 | [
1458 | "Daud",
1459 | "si422",
1460 | 0
1461 | ],
1462 | [
1463 | "Laughlan",
1464 | "si422",
1465 | 0
1466 | ],
1467 | [
1468 | "Katya",
1469 | "si422",
1470 | 0
1471 | ],
1472 | [
1473 | "Kdi",
1474 | "si422",
1475 | 0
1476 | ],
1477 | [
1478 | "Alekzander",
1479 | "si422",
1480 | 0
1481 | ],
1482 | [
1483 | "Minaal",
1484 | "si422",
1485 | 0
1486 | ],
1487 | [
1488 | "Moray",
1489 | "si422",
1490 | 0
1491 | ],
1492 | [
1493 | "Marykate",
1494 | "si422",
1495 | 0
1496 | ],
1497 | [
1498 | "Calla",
1499 | "si422",
1500 | 0
1501 | ],
1502 | [
1503 | "Esha",
1504 | "si422",
1505 | 0
1506 | ],
1507 | [
1508 | "Shanna",
1509 | "si422",
1510 | 0
1511 | ],
1512 | [
1513 | "Fyfe",
1514 | "si422",
1515 | 0
1516 | ],
1517 | [
1518 | "Marvellous",
1519 | "si422",
1520 | 0
1521 | ],
1522 | [
1523 | "Tamar",
1524 | "si422",
1525 | 0
1526 | ],
1527 | [
1528 | "Aeryn",
1529 | "si422",
1530 | 0
1531 | ],
1532 | [
1533 | "Lmar",
1534 | "si422",
1535 | 0
1536 | ],
1537 | [
1538 | "Rayane",
1539 | "si422",
1540 | 0
1541 | ],
1542 | [
1543 | "Maizy",
1544 | "si422",
1545 | 0
1546 | ],
1547 | [
1548 | "Atlanta",
1549 | "si422",
1550 | 0
1551 | ],
1552 | [
1553 | "Medeeha",
1554 | "si422",
1555 | 0
1556 | ],
1557 | [
1558 | "Nassir",
1559 | "si422",
1560 | 0
1561 | ],
1562 | [
1563 | "Prabhjot",
1564 | "si422",
1565 | 0
1566 | ],
1567 | [
1568 | "Kalia",
1569 | "si422",
1570 | 0
1571 | ],
1572 | [
1573 | "Aimiee",
1574 | "si422",
1575 | 0
1576 | ],
1577 | [
1578 | "Amgad",
1579 | "si422",
1580 | 0
1581 | ],
1582 | [
1583 | "Nazlijan",
1584 | "si422",
1585 | 0
1586 | ],
1587 | [
1588 | "Abbey",
1589 | "si422",
1590 | 0
1591 | ],
1592 | [
1593 | "Berlin",
1594 | "si422",
1595 | 0
1596 | ],
1597 | [
1598 | "Kruz",
1599 | "si422",
1600 | 0
1601 | ],
1602 | [
1603 | "Chaela",
1604 | "si422",
1605 | 0
1606 | ],
1607 | [
1608 | "Caelainn",
1609 | "si422",
1610 | 0
1611 | ],
1612 | [
1613 | "Howard",
1614 | "si422",
1615 | 0
1616 | ],
1617 | [
1618 | "Caethan",
1619 | "si422",
1620 | 0
1621 | ],
1622 | [
1623 | "Johann",
1624 | "si422",
1625 | 0
1626 | ],
1627 | [
1628 | "Aiadan",
1629 | "si422",
1630 | 0
1631 | ],
1632 | [
1633 | "Dilraj",
1634 | "si422",
1635 | 0
1636 | ],
1637 | [
1638 | "Ayren",
1639 | "si422",
1640 | 0
1641 | ],
1642 | [
1643 | "Leyla",
1644 | "si422",
1645 | 0
1646 | ],
1647 | [
1648 | "Rona",
1649 | "si422",
1650 | 0
1651 | ],
1652 | [
1653 | "Kailin",
1654 | "si422",
1655 | 0
1656 | ],
1657 | [
1658 | "Alina",
1659 | "si422",
1660 | 0
1661 | ],
1662 | [
1663 | "Robertjohn",
1664 | "si422",
1665 | 0
1666 | ],
1667 | [
1668 | "Janie",
1669 | "si430",
1670 | 1
1671 | ],
1672 | [
1673 | "Finn",
1674 | "si430",
1675 | 0
1676 | ],
1677 | [
1678 | "Jemma",
1679 | "si430",
1680 | 0
1681 | ],
1682 | [
1683 | "Elvi",
1684 | "si430",
1685 | 0
1686 | ],
1687 | [
1688 | "Eabha",
1689 | "si430",
1690 | 0
1691 | ],
1692 | [
1693 | "Zachery",
1694 | "si430",
1695 | 0
1696 | ],
1697 | [
1698 | "Gemima",
1699 | "si430",
1700 | 0
1701 | ],
1702 | [
1703 | "Irza",
1704 | "si430",
1705 | 0
1706 | ],
1707 | [
1708 | "James",
1709 | "si430",
1710 | 0
1711 | ],
1712 | [
1713 | "Cooper",
1714 | "si430",
1715 | 0
1716 | ],
1717 | [
1718 | "Akan",
1719 | "si430",
1720 | 0
1721 | ],
1722 | [
1723 | "Rufus",
1724 | "si430",
1725 | 0
1726 | ],
1727 | [
1728 | "Codi",
1729 | "si430",
1730 | 0
1731 | ],
1732 | [
1733 | "Fawkes",
1734 | "si430",
1735 | 0
1736 | ],
1737 | [
1738 | "Kodie",
1739 | "si430",
1740 | 0
1741 | ],
1742 | [
1743 | "Mariena",
1744 | "si430",
1745 | 0
1746 | ],
1747 | [
1748 | "Cohan",
1749 | "si430",
1750 | 0
1751 | ],
1752 | [
1753 | "Boys",
1754 | "si430",
1755 | 0
1756 | ],
1757 | [
1758 | "Takira",
1759 | "si430",
1760 | 0
1761 | ],
1762 | [
1763 | "Avril",
1764 | "si430",
1765 | 0
1766 | ],
1767 | [
1768 | "Joyce",
1769 | "si430",
1770 | 0
1771 | ],
1772 | [
1773 | "Corbin",
1774 | "si430",
1775 | 0
1776 | ],
1777 | [
1778 | "Kyan",
1779 | "si430",
1780 | 0
1781 | ],
1782 | [
1783 | "Leyland",
1784 | "si430",
1785 | 0
1786 | ],
1787 | [
1788 | "Derek",
1789 | "si430",
1790 | 0
1791 | ],
1792 | [
1793 | "Erica",
1794 | "si430",
1795 | 0
1796 | ],
1797 | [
1798 | "Bartlomiej",
1799 | "si430",
1800 | 0
1801 | ],
1802 | [
1803 | "Denon",
1804 | "si430",
1805 | 0
1806 | ],
1807 | [
1808 | "Brenna",
1809 | "si430",
1810 | 0
1811 | ],
1812 | [
1813 | "Coupar",
1814 | "si430",
1815 | 0
1816 | ],
1817 | [
1818 | "Taylor",
1819 | "si430",
1820 | 0
1821 | ],
1822 | [
1823 | "Kaleigh",
1824 | "si430",
1825 | 0
1826 | ],
1827 | [
1828 | "Abir",
1829 | "si430",
1830 | 0
1831 | ],
1832 | [
1833 | "Angelina",
1834 | "si430",
1835 | 0
1836 | ],
1837 | [
1838 | "Celik",
1839 | "si430",
1840 | 0
1841 | ],
1842 | [
1843 | "Lauchlin",
1844 | "si430",
1845 | 0
1846 | ],
1847 | [
1848 | "Jaymi",
1849 | "si430",
1850 | 0
1851 | ],
1852 | [
1853 | "Vincent",
1854 | "si430",
1855 | 0
1856 | ],
1857 | [
1858 | "Mirrin",
1859 | "si430",
1860 | 0
1861 | ],
1862 | [
1863 | "Paris",
1864 | "si430",
1865 | 0
1866 | ],
1867 | [
1868 | "Momina",
1869 | "si430",
1870 | 0
1871 | ],
1872 | [
1873 | "Emillie",
1874 | "si430",
1875 | 0
1876 | ]
1877 | ]
--------------------------------------------------------------------------------
/all-python-codes/retrieve-school-data/rosterdb.py:
--------------------------------------------------------------------------------
1 | import json
2 | import sqlite3
3 |
4 | conn = sqlite3.connect('rosterdb.sqlite')
5 | cur = conn.cursor()
6 |
7 | # Do some setup
8 | cur.executescript('''
9 | DROP TABLE IF EXISTS User;
10 | DROP TABLE IF EXISTS Member;
11 | DROP TABLE IF EXISTS Course;
12 |
13 | CREATE TABLE User (
14 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
15 | name TEXT UNIQUE
16 | );
17 |
18 | CREATE TABLE Course (
19 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
20 | title TEXT UNIQUE
21 | );
22 |
23 | CREATE TABLE Member (
24 | user_id INTEGER,
25 | course_id INTEGER,
26 | role INTEGER,
27 | PRIMARY KEY (user_id, course_id)
28 | )
29 | ''')
30 |
31 | fname = input('Enter file name: ')
32 | if len(fname) < 1:
33 | fname = 'roster_data.json'
34 |
35 | # [
36 | # [ "Charley", "si110", 1 ],
37 | # [ "Mea", "si110", 0 ],
38 |
39 | str_data = open(fname).read()
40 | json_data = json.loads(str_data)
41 |
42 | for entry in json_data:
43 |
44 | name = entry[0];
45 | title = entry[1];
46 | role = entry[2]
47 | row = cur.fetchone()
48 |
49 | print((name, title, role))
50 |
51 | cur.execute('''INSERT OR IGNORE INTO User (name)
52 | VALUES ( ? )''', ( name, ) )
53 | cur.execute('SELECT id FROM User WHERE name = ? ', (name, ))
54 | user_id = cur.fetchone()[0]
55 |
56 | cur.execute('''INSERT OR IGNORE INTO Course (title)
57 | VALUES ( ? )''', ( title, ) )
58 | cur.execute('SELECT id FROM Course WHERE title = ? ', (title, ))
59 | course_id = cur.fetchone()[0]
60 |
61 | cur.execute('''INSERT OR REPLACE INTO Member
62 | (user_id, course_id, role) VALUES ( ?, ?, ?)''',
63 | ( user_id, course_id, role ) )
64 |
65 | conn.commit()
66 |
67 | sqlstr =('''
68 | SELECT User.name,Course.title, Member.role
69 | FROM User JOIN Member JOIN Course ON
70 | User.id = Member.user_id AND Member.course_id = Course.id
71 | ORDER BY User.name DESC, Course.title DESC, Member.role DESC LIMIT 2;
72 | ''')
73 |
74 | for row in cur.execute(sqlstr):
75 | print(str(row[0]), row[1], row[2])
76 | test_statement = ('''
77 | SELECT 'XYZZY' || hex(User.name || Course.title || Member.role ) AS X FROM
78 | User JOIN Member JOIN Course
79 | ON User.id = Member.user_id AND Member.course_id = Course.id
80 | ORDER BY X LIMIT 1;
81 | ''')
82 | cur.execute(test_statement)
83 | result = cur.fetchone()
84 | print('RESULT: ' ,(result))
85 |
86 |
87 | cur.close()
88 |
--------------------------------------------------------------------------------
/all-python-codes/retrieve-school-data/rosters.py:
--------------------------------------------------------------------------------
1 | import json
2 | import sqlite3
3 |
4 |
5 | fname = input('Enter file name: ')
6 | if len(fname) < 1:
7 | fname = 'roster_data.json'
8 |
9 | # [
10 | # [ "Charley", "si110", 1 ],
11 | # [ "Mea", "si110", 0 ],
12 |
13 | str_data = open(fname).read()
14 | json_data = json.loads(str_data)
15 |
16 | for entry in json_data:
17 |
18 | name = entry[0];
19 | title = entry[1];
20 | role = entry[2]
21 | row = cur.fetchone()
22 |
23 | print((name, title, role))
24 |
25 |
26 |
--------------------------------------------------------------------------------