diff --git a/Angelyxx_ip_master/authorship.json b/Angelyxx_ip_master/authorship.json index 433e4ee2..4140a17a 100644 --- a/Angelyxx_ip_master/authorship.json +++ b/Angelyxx_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"# Duke","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"Duke is a friendly chatbot application for task management. You can interact with Duke through the use of a Graphical User Interface (GUI), and keep track of tasks such as your to-dos, deadlines, and events.","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"* Setting up in Intellij","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"* Features","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" * Add a to-do: ```todo```","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Add a deadline: ```deadline```","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Add an event: ```event```","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * List all tasks: ```list```","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Mark a task as done: ```mark```","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" * Unmark a task: ```unmark```","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Find a task by keyword: ```find```","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" * Delete a specific task: ```delete```","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * Exiting the program: ```exit``` or ```bye```","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":22,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":23,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":24,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":25,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":27,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":28,"author":{"gitId":"-"},"content":"3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:","lastModifiedDate":"2021-07-29"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":"## Features","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":"### Notes about command format","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"1. Items in ```UPPER_CASE``` are parameters to be supplied by the user.","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" e.g. in ```todo TASK_DESCRIPTION```, ```TASK_DESCRIPTION``` is a parameter which can be used as todo homework.","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":"2. Items in square brackets are optional.","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline TASK_DESCRIPTION /by DATE [TIME]``` can be used as ```deadline IS1108 Assignment /by 7/11/2023``` or ```deadline IS1108 Assignment /by 7/11/2023 1500```","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"3. All ```DATE``` parameters can be put in multiple formats.","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline TASK_DESCRIPTION /by DATE [TIME]``` can be used as ```deadline IS1108 Assignment /by 2023-09-08```, ```deadline IS1108 Assignment /by 8/9/2023``` or ```deadline IS1108 Assignment /by Mon```","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"4. All weekday abbreviations in ```DATE``` parameters refers to the coming weekday","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline IS1108 Assignment /by Mon``` refers to next Monday.","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":"5. All ```[TIME]``` parameters can be put as either in 12-Hour clock format or 24-Hour clock format.","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline TASK_DESCRIPTION /by DATE [TIME]``` can be used as ```deadline IS1108 Assignment /by Mon 11.59pm```, ","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" ```deadline IS1108 Assignment /by Mon 2359``` or ```deadline IS1108 Assignment /by Mon 23:59```","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"6. Extraneous parameters for commands that do not take in parameters (such as ```list``` and ```clear```) will be ignored.","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" e.g. if the command specifies ```list 123```, it will be interpreted as ```list```.","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" ","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":"### Add a to-do: ```todo```","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":"Adds a to-do task to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":"Format: ```todo TASK_DESCRIPTION```","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"```todo update README```","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":"```todo finish CS2100 Assignment```","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":"### Add a deadline: ```deadline```","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":"Adds a deadline to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"Format: ```deadline TASK_DESCRIPTION /from DATE [TIME]```","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"```deadline update README /from Mon 4pm```","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":"```deadline return book /by 2/12/2023 1800```","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"### Add an event: ```event```","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":"Adds an event to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":"Format: ```event TASK_DESCRIPTION /from DATE [TIME] /to DATE [TIME]```","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"```event Sleepover /from Thurs /to Fri```","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":"```event Orientation Camp /from 8/10/2023 /to 11/10/2023```","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"```event ST2334 Finals /from 27/11/2023 1600 /to 27/11/2023 1800```","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":"### List all tasks: ```list```","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":"List all tasks that have been added.","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":"Format: ```list```","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":"### Mark a task as done: ```mark```","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":"Marks a task as done.","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":"Format: ```mark INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":"* Marks a task as done at the specified ```INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":"* The index refers to index number shown in the displayed task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":"```mark 3```","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":"### Unmark a task: ```unmark```","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":"Unmarks a task that has been previously marked as done.","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":"Format: ```mark INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":"* unmarks a task at the specified ```INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":"* The index refers to index number shown in the displayed task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":"```unmark 3```","lastModifiedDate":"2023-09-21"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":"### Find a task by keyword: ```find```","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":"Finds a task which contains the given keyword.","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":"Format: ```find KEYWORD```","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":"* Only the task description is searched","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":"* Only full words will be matched e.g. meeting will not match meetings","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":"```find meeting```","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":"\u003cimg width\u003d\"383\" alt\u003d\"find command example\" src\u003d\"https://github.com/Angelyxx/ip/assets/73735276/6b280df6-140d-4b64-aba5-1e33dac4b4be\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":"### Delete a specific task: ```delete```","lastModifiedDate":"2023-09-21"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":"Deletes an existing task.","lastModifiedDate":"2023-09-21"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":"Format: ```delete INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":"* Deletes a task at the specified ```INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":"* The index refers to index number shown in the displayed task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":"```delete 3```","lastModifiedDate":"2023-09-21"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":"### Exiting the program: ```exit``` or ```bye```","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":"Exits the duke chatbot.","lastModifiedDate":"2023-09-21"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":"Format: ```exit``` or ```bye```","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"Angelyxx":95,"-":14}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" mainClass.set(\"duke.main.Duke\") //set to main class","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" archiveFileName \u003d \"duke.jar\"","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Angelyxx":17,"-":38}},{"path":"src/main/java/duke/command/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a base class for different commands for Duke.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public abstract class Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Executes the command with the given parameters.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public abstract void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * Checks if the command is an exit command.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @return True if the command is an exit command, false otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" public boolean isExit() {","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" return false;","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":30}},{"path":"src/main/java/duke/command/DeadlineCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to add a deadline task to the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class DeadlineCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private String deadlineBy;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Constructs a DeadlineCommand with the given description and deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" * @param description The description of the deadline task.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * @param deadlineBy The deadline of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" public DeadlineCommand(String description, String deadlineBy) {","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" this.deadlineBy \u003d deadlineBy;","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * Executes the DeadlineCommand by adding a new Deadline task to the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the tasks to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" Deadline deadline \u003d new Deadline(description, deadlineBy);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" tasks.add(deadline);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" ui.displayCompletionMessage(deadline, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/command/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to delete a task from the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private int index; //index of task to be deleted","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a DeleteCommand with the specified task index.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be deleted.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public DeleteCommand(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" assert index \u003e 0 : \"Index must be a positive integer.\";","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" this.index \u003d index - 1;","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * Executes the DeleteCommand by removing the task from the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" * displaying a deletion message, and saving the updated task list to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" assert index \u003e 0 : \"Index must be a positive integer.\";","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" Task removedTask \u003d tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" tasks.delete(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" ui.printDeleteMessage(removedTask, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please provide a valid task index to delete.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":46}},{"path":"src/main/java/duke/command/EventCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to add an event task to the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"public class EventCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" private String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String startDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private String endDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Constructs an EventCommand with the given event details.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" * @param description The description of the event.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * @param startDateTimeStr The start date and time of the event as a string.","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * @param endDateTimeStr The end date and time of the event as a string.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" public EventCommand(String description, String startDateTimeStr, String endDateTimeStr) {","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" this.startDateTimeStr \u003d startDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" this.endDateTimeStr \u003d endDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * Executes the EventCommand by adding a new Event task to the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the tasks to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" Event event \u003d new Event(description, startDateTimeStr, endDateTimeStr);","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" tasks.add(event);","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" ui.displayCompletionMessage(event, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":46}},{"path":"src/main/java/duke/command/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to exit the chatBot.","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Executes the ExitCommand by printing an exit message to the user interface.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks.","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) {","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" ui.printExit();","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Checks if the command is an exit command.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" * @return True if this an exit command.","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" public boolean isExit() {","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" return true;","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":32}},{"path":"src/main/java/duke/command/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-09-01"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to find all tasks containing a keyword.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class FindCommand extends Command {","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private String keyword;","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Constructs an FindCommand with the specified keyword.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" * @param keyword The keyword to search for in the list of tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * Executes the FindCommand by finding all tasks containing the keyword.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e filteredTasks \u003d tasks.find(keyword);","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" ui.printTaskList(filteredTasks, \"Here are the matching tasks in your list:\");","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-01"}],"authorContributionMap":{"Angelyxx":38}},{"path":"src/main/java/duke/command/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to list all tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Executes the ListCommand by printing the list of all tasks to the user interface.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) {","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" ui.printTaskList(tasks.getAllTasks(), \"Here are your entries:\");","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":23}},{"path":"src/main/java/duke/command/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to mark a task as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private int index; //index of task to mark","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a MarkCommand with the specified task index.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public MarkCommand(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" this.index \u003d index - 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Executes the MarkCommand by marking a task as done, displaying a completion message,","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * and saving the updated task list to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" Task markTask \u003d tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" tasks.markDone(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" ui.printMessage(\"Nice! I\u0027ve marked this task as done:\\n\\t\", markTask);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please provide a valid task index to mark.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/command/ToDoCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to add a \"Todo\" task.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class ToDoCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a ToDoCommand with the given description.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param description The description of the \"To-Do\" task.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public ToDoCommand(String description) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Executes the ToDoCommand by adding a new \"To-Do\" task to the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the tasks to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" ToDo todo \u003d new ToDo(description);","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" tasks.add(todo);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" ui.displayCompletionMessage(todo, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":41}},{"path":"src/main/java/duke/command/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to mark a task as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class UnmarkCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private int index; //index of task to mark","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs an UnMarkCommand with the specified task index.","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public UnmarkCommand(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" this.index \u003d index - 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Executes the UnMarkCommand by marking a task as not done,","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the updated task list to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" Task unmarkTask \u003d tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" tasks.markNotDone(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" ui.printMessage(\"OK, I\u0027ve marked this task as not done yet:\\n\\t\", unmarkTask);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please provide a valid task index to be unmarked.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/exception/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.exception;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" * An exception class for representing exceptions to the Duke application.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Constructs a DukeException with the specified error message.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * @param message The error message associated with the exception.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" super(message);","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":16}},{"path":"src/main/java/duke/main/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.Priority;","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" private Label dialog;","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" // Inside your DialogBox constructor","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" HBox.setHgrow(this, Priority.ALWAYS); // Allow horizontal growth if needed","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" VBox.setVgrow(dialog, Priority.ALWAYS); // Allow vertical growth for the Label","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" private void flip() {","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" DialogBox db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" db.loadCss(\"/styles/user-dialog-box.css\");","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" db.getStyleClass().add(\"user-dialog-box\");","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" return db;","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" DialogBox db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" db.flip();","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" db.loadCss(\"/styles/duke-dialog-box.css\");","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" db.getStyleClass().add(\"duke-dialog-box\");","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" return db;","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" private void loadCss(String cssFilePath) {","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" if (cssFilePath !\u003d null \u0026\u0026 !cssFilePath.isEmpty()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" this.getStylesheets().add(getClass().getResource(cssFilePath).toExternalForm());","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" System.out.println(\"CSS Stylesheet not found.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":79}},{"path":"src/main/java/duke/main/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.command.Command;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" * The main class that initializes and runs the Duke Chat Bot.","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"public class Duke {","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" private static final String DATA_FILE_PATH \u003d \"./data/duke.txt\";","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" private Storage storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" private TaskList tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private Ui ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private boolean isExit \u003d false;","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Duke instance with the specified data file path.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" Duke() {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" storage \u003d new Storage(DATA_FILE_PATH);","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" tasks \u003d new TaskList(storage.loadTasksFromFile());","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" String getResponse(String input) {","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" if (isExit) {","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" return \"\";","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" ui.resetOutput();","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" Command c \u003d Parser.parse(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" c.execute(tasks, ui, storage);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" isExit \u003d c.isExit();","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" return ui.getOutput();","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/main/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"public class Launcher {","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":12}},{"path":"src/main/java/duke/main/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" stage.setTitle(\"Duke\");","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-21"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" stage.show();","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":31}},{"path":"src/main/java/duke/main/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" private Duke duke;","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.png\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Duke.png\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * Initialises the GUI for Duke.","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" public void initialize() {","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" showGreetingMessage();","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" );","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" userInput.clear();","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" private void showGreetingMessage() {","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" DialogBox.getDukeDialog(\"Welcome to Duke! What can I do for you today?\", dukeImage)","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" );","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":62}},{"path":"src/main/java/duke/main/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.command.Command;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeadlineCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeleteCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.command.EventCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ExitCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import duke.command.FindCommand;","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ListCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import duke.command.MarkCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ToDoCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import duke.command.UnmarkCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Handles the parsing of user input commands to create corresponding Command objects.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"public class Parser {","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * Parses the user input to create a corresponding Command object.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * @param userInput The user\u0027s input as a String.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @return A Command object representing the parsed user input.","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the user input is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" static Command parse(String userInput) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" if (userInput.startsWith(\"bye\") || userInput.startsWith(\"exit\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" return new ExitCommand();","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"list\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" return new ListCommand();","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"mark\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" int taskIndex \u003d validateMarkAndDelete(userInput.substring(5));","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" return new MarkCommand(taskIndex);","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"unmark\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" int taskIndex \u003d validateMarkAndDelete(userInput.substring(7));","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" return new UnmarkCommand(taskIndex);","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"todo\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" String toDoDescription \u003d validateToDo(userInput);","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" return new ToDoCommand(toDoDescription);","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"deadline\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" String[] info \u003d validateDeadline(userInput);","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" return new DeadlineCommand(info[0], info[1]);","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"event\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" String[] info \u003d validateEvent(userInput);","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" return new EventCommand(info[0], info[1], info[2]);","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"delete\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" int taskIndex \u003d validateMarkAndDelete(userInput.substring(7));","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" return new DeleteCommand(taskIndex);","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"find\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" String keyword \u003d validateFind(userInput);","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" * Validates and extracts the task index from the user input for mark and delete commands.","lastModifiedDate":"2023-09-01"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" * @param input The user input containing the task index.","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" * @return The validated task index as an integer.","lastModifiedDate":"2023-09-01"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the task index is not valid.","lastModifiedDate":"2023-09-01"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" private static int validateMarkAndDelete(String input) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" if (input.isEmpty() || !isNumeric(input)) {","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! The index cannot be blank or not an integer.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" return Integer.parseInt(input);","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" private static String validateFind(String input) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"find\".length();","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" String keyWord \u003d input.trim().substring(commandLength).trim();","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" if (keyWord.isEmpty()) {","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please enter a keyword to find.\");","lastModifiedDate":"2023-09-01"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" return keyWord;","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" * Checks if a given String can be converted to an integer.","lastModifiedDate":"2023-09-01"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" * @param str The String to be checked.","lastModifiedDate":"2023-09-01"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" * @return True if the String can be converted to an integer, false otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" private static boolean isNumeric(String str) {","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" if (str \u003d\u003d null || str.equals(\"\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" return false;","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":" Integer.parseInt(str);","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" return true;","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" return false;","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" * Validates a toDo description to ensure it is not empty.","lastModifiedDate":"2023-09-01"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" * @param input The toDo description to be validated.","lastModifiedDate":"2023-09-13"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the toDo description is empty.","lastModifiedDate":"2023-09-01"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" private static String validateToDo(String input) throws DukeException {","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"todo\".length(); //get length of string to remove","lastModifiedDate":"2023-09-13"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":" String description \u003d input.trim().substring(commandLength).trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":110,"author":{"gitId":"Angelyxx"},"content":" if (description.isEmpty()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":111,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":112,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":113,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":114,"author":{"gitId":"Angelyxx"},"content":" return description;","lastModifiedDate":"2023-09-13"},{"lineNumber":115,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":116,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":117,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":118,"author":{"gitId":"Angelyxx"},"content":" * Validates and extracts information from user input for creating a deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":119,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":120,"author":{"gitId":"Angelyxx"},"content":" * @param input The user input for creating a deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":121,"author":{"gitId":"Angelyxx"},"content":" * @return A String array containing the task description and deadline information.","lastModifiedDate":"2023-09-01"},{"lineNumber":122,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the input format is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":123,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":124,"author":{"gitId":"Angelyxx"},"content":" private static String[] validateDeadline(String input) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":125,"author":{"gitId":"Angelyxx"},"content":" // Split the input string into words","lastModifiedDate":"2023-09-13"},{"lineNumber":126,"author":{"gitId":"Angelyxx"},"content":" String[] splitInput \u003d input.split(\" /by \");","lastModifiedDate":"2023-09-13"},{"lineNumber":127,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":128,"author":{"gitId":"Angelyxx"},"content":" if (splitInput.length !\u003d 2) {","lastModifiedDate":"2023-09-13"},{"lineNumber":129,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(","lastModifiedDate":"2023-09-13"},{"lineNumber":130,"author":{"gitId":"Angelyxx"},"content":" \"☹ OOPS!!! Invalid deadline format. Please use: deadline \u003cdescription\u003e /by \u003cdate and time\u003e\");","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":132,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"deadline\".length(); //get length of string to remove","lastModifiedDate":"2023-09-13"},{"lineNumber":133,"author":{"gitId":"Angelyxx"},"content":" String description \u003d splitInput[0].substring(commandLength).trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":134,"author":{"gitId":"Angelyxx"},"content":" String dateTime \u003d splitInput[1].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":135,"author":{"gitId":"Angelyxx"},"content":" if (dateTime.isEmpty() || description.isBlank()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":136,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Deadline description or date and time cannot be empty.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":137,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":138,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":139,"author":{"gitId":"Angelyxx"},"content":" return new String[] { description, dateTime };","lastModifiedDate":"2023-09-13"},{"lineNumber":140,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":141,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":142,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":143,"author":{"gitId":"Angelyxx"},"content":" * Validates and extracts information from user input for creating an event.","lastModifiedDate":"2023-09-01"},{"lineNumber":144,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":145,"author":{"gitId":"Angelyxx"},"content":" * @param input The user input for creating an event.","lastModifiedDate":"2023-09-01"},{"lineNumber":146,"author":{"gitId":"Angelyxx"},"content":" * @return An array containing the event description and timing information.","lastModifiedDate":"2023-09-01"},{"lineNumber":147,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the input format is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":148,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":149,"author":{"gitId":"Angelyxx"},"content":" private static String[] validateEvent(String input) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":150,"author":{"gitId":"Angelyxx"},"content":" String[] splitInput \u003d input.split(\" /from | /to \");","lastModifiedDate":"2023-09-13"},{"lineNumber":151,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":152,"author":{"gitId":"Angelyxx"},"content":" if (splitInput.length !\u003d 3) {","lastModifiedDate":"2023-09-13"},{"lineNumber":153,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(","lastModifiedDate":"2023-09-13"},{"lineNumber":154,"author":{"gitId":"Angelyxx"},"content":" \"Invalid event format. Please use: event [description] /from [start date/time] /to [end date/time]\");","lastModifiedDate":"2023-09-13"},{"lineNumber":155,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":156,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":157,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"event \".length(); //get length of string to remove","lastModifiedDate":"2023-09-13"},{"lineNumber":158,"author":{"gitId":"Angelyxx"},"content":" String description \u003d splitInput[0].substring(commandLength).trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":159,"author":{"gitId":"Angelyxx"},"content":" String startDateAndTime \u003d splitInput[1].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":160,"author":{"gitId":"Angelyxx"},"content":" String endDateAndTime \u003d splitInput[2].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":161,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":162,"author":{"gitId":"Angelyxx"},"content":" if (description.isBlank() || startDateAndTime.isBlank() || endDateAndTime.isBlank()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":163,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"Description and date/time cannot be empty.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":164,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":165,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":166,"author":{"gitId":"Angelyxx"},"content":" String[] eventInfo \u003d new String[3];","lastModifiedDate":"2023-09-13"},{"lineNumber":167,"author":{"gitId":"Angelyxx"},"content":" eventInfo[0] \u003d description;","lastModifiedDate":"2023-09-13"},{"lineNumber":168,"author":{"gitId":"Angelyxx"},"content":" eventInfo[1] \u003d startDateAndTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":169,"author":{"gitId":"Angelyxx"},"content":" eventInfo[2] \u003d endDateAndTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":170,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":171,"author":{"gitId":"Angelyxx"},"content":" return eventInfo;","lastModifiedDate":"2023-09-13"},{"lineNumber":172,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":173,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":174,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":174}},{"path":"src/main/java/duke/main/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.io.File;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Handles the loading and saving of tasks to a data file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"public class Storage {","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" private String filePath;","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Storage instance with the specified file path.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @param filePath The file path where task data will be stored and loaded from.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" Storage(String filePath) {","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * Loads tasks from the data file and returns them as a list.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @return An ArrayList containing the loaded tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there is an error during the loading process.","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" public ArrayList\u003cTask\u003e loadTasksFromFile() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" return tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" Scanner scanner \u003d new Scanner(file);","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" while (scanner.hasNextLine()) {","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" String data \u003d scanner.nextLine();","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" String[] taskData \u003d data.split(\" \\\\| \");","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" Task task;","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" //taskData[0] \u003d task type","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" //taskData[1] \u003d Done status","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" //taskData[2] \u003d description","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" boolean isDone \u003d taskData[1].equals(\"1\");","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" switch (taskData[0]) {","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" case \"T\":","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" task \u003d new ToDo(taskData[2]);","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" case \"D\":","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" task \u003d new Deadline(taskData[2], taskData[3]);","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" case \"E\":","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" String[] eventData \u003d taskData[3].split(\" to \");","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" task \u003d new Event(taskData[2], eventData[0], eventData[1]);","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" default:","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" System.out.println(\"error: unknown task type found in file.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" continue; // Skip to the next line","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" // Set done status","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" if (isDone) {","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" task.markDone();","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" task.markNotDone();","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-01"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" return tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"Error loading file: IOException occurred.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" * Saves tasks to the data file.","lastModifiedDate":"2023-09-01"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The TaskList containing the tasks to be saved.","lastModifiedDate":"2023-09-01"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there is an error during the saving process.","lastModifiedDate":"2023-09-01"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":" public void saveTasksToFile(TaskList tasks) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" FileWriter fileWriter \u003d new FileWriter(filePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" for (Task task: tasks.getAllTasks()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":" fileWriter.write(task.toFileString() + \"\\n\");","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-31"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"Error saving file: IOException occurred.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":107}},{"path":"src/main/java/duke/main/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a list of tasks and provides methods for managing tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public class TaskList {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" private ArrayList\u003cTask\u003e tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" * Constructs an empty TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" TaskList() {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" this.tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * Constructs a TaskList with an existing list of tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * @param tasks An ArrayList of tasks to populate the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" TaskList(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * Retrieves all tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" * @return An ArrayList containing all tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public ArrayList\u003cTask\u003e getAllTasks() {","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" return tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" * Retrieves a task at a specific index in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to retrieve.","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * @return The task at the specified index.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public Task get(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" assert index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size() : \"Invalid index\";","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" return tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" * Adds a task to the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" * @param task The task to be added.","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" public void add(Task task) {","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-01"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" * Deletes a task from the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be deleted.","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" public void delete(int index) {","lastModifiedDate":"2023-09-01"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" tasks.remove(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" * Retrieves the total number of tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" * @return The total number of tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" public int size() {","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" return tasks.size();","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" public void markDone(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" tasks.get(index).markDone();","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" public void markNotDone(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" tasks.get(index).markNotDone();","lastModifiedDate":"2023-09-01"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":" * Returns list of task containing a keyword","lastModifiedDate":"2023-09-01"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" * @param keyword Keyword to find in the tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":" public ArrayList\u003cTask\u003e find(String keyword) {","lastModifiedDate":"2023-09-01"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e filteredTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-01"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" for (Task t : tasks) {","lastModifiedDate":"2023-09-01"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":" if (t.getDescription().contains(keyword)) {","lastModifiedDate":"2023-09-01"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" filteredTasks.add(t);","lastModifiedDate":"2023-09-01"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" return filteredTasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":109}},{"path":"src/main/java/duke/main/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Handles interactions with the user interface, displaying messages","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * and receiving user input.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class Ui {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private StringBuilder output;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" Ui() {","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" output \u003d new StringBuilder();","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" void resetOutput() {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" output.setLength(0);","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" String getOutput() {","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" return output.toString();","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" private void addToOutput(String str) {","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" output.append(str);","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * Displays an error message to the user.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @param message The error message to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" public void showError(String message) {","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" addToOutput(message);","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" * Displays a completion message after adding a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * @param task The task that was added.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" * @param size The total number of tasks after adding the new task.","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" public void displayCompletionMessage(Task task , int size) {","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\tGot it. I\u0027ve added this task:\");","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\n\\t\\t\" + task);","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\n\\tNow you have \" + size + \" tasks in the list.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" * Displays a message along with a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" * @param message The message to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" * @param task The task to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" public void printMessage(String message, Task task) {","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\t\" + message + task.toString());","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" * Displays the exit message to the user.","lastModifiedDate":"2023-09-01"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" public void printExit() {","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\tBye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" * Displays the list of tasks to the user.","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" public void printTaskList(ArrayList\u003cTask\u003e tasks, String message) {","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" addToOutput(message);","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-01"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\n\" + (i + 1) + \". \" + tasks.get(i).toString());","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" * Displays a message after removing a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" * @param removedTask The task that was removed.","lastModifiedDate":"2023-09-01"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":" * @param size The total number of tasks after removing the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" public void printDeleteMessage(Task removedTask, int size) {","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"Noted. I\u0027ve removed this task:\\n\\t\" + removedTask);","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\nNow you have \" + size + \" tasks in the list.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":91}},{"path":"src/main/java/duke/task/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.util.DateParser;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Represents a task with a deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-26"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" private String deadlineBy;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" private LocalDate deadlineDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" private LocalDateTime deadlineDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Deadline object with the task description and deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @param deadlineBy Deadline of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" public Deadline(String description, String deadlineBy) {","lastModifiedDate":"2023-08-26"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" super(description);","lastModifiedDate":"2023-08-26"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" this.deadlineDate \u003d DateParser.parseDate(deadlineBy);","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" this.deadlineDateTime \u003d DateParser.parseDateTime(deadlineBy);","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" this.deadlineBy \u003d deadlineBy;","lastModifiedDate":"2023-08-26"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of deadline object to write to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the deadline object to be written to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"D\";","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone() ? \"1\" : \"0\") + \" | \" + this.description + \" | \" + this.deadlineBy;","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" * The string representation of deadline object.","lastModifiedDate":"2023-09-01"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the deadline object.","lastModifiedDate":"2023-09-01"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" if (deadlineDateTime !\u003d null) {","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" String formattedDate \u003d deadlineDateTime.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[D]%s (by: %s)\", super.toString(), formattedDate);","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" } else if (deadlineDate !\u003d null) {","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" String formattedDate \u003d deadlineDate.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[D]%s (by: %s)\", super.toString(), formattedDate);","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[D]%s (by: %s)\", super.toString(), deadlineBy);","lastModifiedDate":"2023-08-26"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Angelyxx":64}},{"path":"src/main/java/duke/task/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.util.DateParser;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Represents a task with a starting and ending date.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-26"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" private String startDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private LocalDate startDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" private LocalDate endDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" private LocalDateTime startDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" private LocalDateTime endDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * Constructs an Event object with the task description,","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * starting date (and time) of event and ending date (and time) of the event.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @param startDateTimeStr Start date (and time) of the event","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @param endDateTimeStr End date (and time) of the event","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" public Event(String description, String startDateTimeStr, String endDateTimeStr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" super(description);","lastModifiedDate":"2023-08-26"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" this.startDate \u003d DateParser.parseDate(startDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" this.endDate \u003d DateParser.parseDate(endDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" this.startDateTime \u003d DateParser.parseDateTime(startDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" this.endDateTime \u003d DateParser.parseDateTime(endDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" this.startDateTimeStr \u003d startDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" this.endDateTimeStr \u003d endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of event object to write to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the event object to be written to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"E\";","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone() ? \"1\" : \"0\") + \" | \" + this.description + \" | \"","lastModifiedDate":"2023-09-01"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" + this.startDateTimeStr + \" to \" + this.endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" * The string representation of event object.","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the event object.","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" String startStr \u003d startDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" String endStr \u003d endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" if (startDateTime !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" startStr \u003d startDateTime.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" } else if (startDate !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" startStr \u003d startDate.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" if (endDateTime !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" endStr \u003d endDateTime.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" } else if (endDate !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" endStr \u003d endDate.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[E]%s (from: %s to %s)\", super.toString(), startStr, endStr);","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-26"}],"authorContributionMap":{"Angelyxx":76}},{"path":"src/main/java/duke/task/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" * Represents a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"public class Task {","lastModifiedDate":"2023-08-26"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" protected String description;","lastModifiedDate":"2023-08-26"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-26"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Task object with a description.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" public Task(String description) {","lastModifiedDate":"2023-08-26"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" assert description !\u003d null : \"Description cannot be null\";","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-26"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-26"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" * Returns an X icon based on whether a task is done.","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @return \"X\" if a task is done, \" \" otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-26"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" return (isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-26"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * Returns a description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @return Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" public String getDescription() {","lastModifiedDate":"2023-08-26"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" return description;","lastModifiedDate":"2023-08-26"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" * Returns whether a task has been completed.","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * @return True is task is done, false otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public boolean isDone() {","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" return isDone;","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" public void markDone() {","lastModifiedDate":"2023-08-26"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-26"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" public void markNotDone() {","lastModifiedDate":"2023-08-26"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-26"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of the Task object to write to the file.","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the Task object to be written to the file.","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"T\"; // Default type for base Task","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone ? \"1\" : \"0\") + \" | \" + description;","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" return \"[\" + this.getStatusIcon() + \"] \" + this.getDescription();","lastModifiedDate":"2023-08-26"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-26"}],"authorContributionMap":{"Angelyxx":79}},{"path":"src/main/java/duke/task/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" * Represents a task with a description.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Constructs a ToDo object with the task description and deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" public ToDo(String description) {","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" super(description);","lastModifiedDate":"2023-08-26"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of the ToDo object to write to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the ToDo object to be written to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"T\";","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone() ? \"1\" : \"0\") + \" | \" + getDescription();","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * The string representation of ToDo object.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the ToDo object.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-26"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-26"}],"authorContributionMap":{"Angelyxx":37}},{"path":"src/main/java/duke/util/DateParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.util;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.time.DayOfWeek;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import java.util.HashMap;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import java.util.List;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import java.util.Map;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Class to parse strings to either LocalDate or LocalDateTime Format","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"public class DateParser {","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" private static final List\u003cDateTimeFormatter\u003e dateFormatters \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" private static final List\u003cDateTimeFormatter\u003e dateTimeFormatters \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" private static final List\u003cDateTimeFormatter\u003e timeFormatters \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" private static final LocalDate today \u003d LocalDate.now();","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" // Initialize date and date-time formatters","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" static {","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd\u0027T\u0027HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" timeFormatters.add(DateTimeFormatter.ofPattern(\"h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" timeFormatters.add(DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" timeFormatters.add(DateTimeFormatter.ofPattern(\"HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" * Parses a String to a LocalDate object.","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" * @param date String representation of a potential date.","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDate object if the string can be parsed, null otherwise.","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" public static LocalDate parseDate(String date) {","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" for (DateTimeFormatter formatter : dateFormatters) {","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" return LocalDate.parse(date, formatter);","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" //returns null if it fails","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" return parseNaturalDate(date);","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" * Parses a String to a LocalDateTime object.","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" * @param dateTime String representation of a potential date and time.","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDateTime object if the string can be parsed, null otherwise.","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" public static LocalDateTime parseDateTime(String dateTime) {","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" for (DateTimeFormatter formatter : dateTimeFormatters) {","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" return LocalDateTime.parse(dateTime.toUpperCase(), formatter);","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" //returns null if it fails","lastModifiedDate":"2023-09-13"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" return parseNaturalDateTime(dateTime);","lastModifiedDate":"2023-09-13"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" public static LocalTime parseTime(String time) {","lastModifiedDate":"2023-09-13"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" for (DateTimeFormatter formatter : timeFormatters) {","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" return LocalTime.parse(time, formatter);","lastModifiedDate":"2023-09-13"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" // Ignore parsing errors and continue with the next formatter","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":" return null; // Parsing failed with all formatters","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" * Parses a String as a natural language date, e.g., \"Mon\" for the next Monday.","lastModifiedDate":"2023-09-13"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":" * @param input String representation of a natural language date.","lastModifiedDate":"2023-09-13"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDate object representing the parsed date or null if parsing fails.","lastModifiedDate":"2023-09-13"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":" private static LocalDate parseNaturalDate(String input) {","lastModifiedDate":"2023-09-13"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" Pattern todayPattern \u003d Pattern.compile(\"\\\\b(today)\\\\b\", Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" Pattern tomorrowPattern \u003d Pattern.compile(\"\\\\b(tomorrow)\\\\b\", Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" Pattern dayOfWeekPattern \u003d Pattern.compile(","lastModifiedDate":"2023-09-13"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" \"(\\\\bMon|Tue(s)?|Wed(s)|Wed(nes)?|Thu(rs)?|Fri|Sat(ur)?|Sun)(day)?\\\\b\", Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":" Matcher todayMatcher \u003d todayPattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":" if (todayMatcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":" return today;","lastModifiedDate":"2023-09-13"},{"lineNumber":110,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":111,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":112,"author":{"gitId":"Angelyxx"},"content":" Matcher tomorrowMatcher \u003d tomorrowPattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":113,"author":{"gitId":"Angelyxx"},"content":" if (tomorrowMatcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":114,"author":{"gitId":"Angelyxx"},"content":" return today.plusDays(1);","lastModifiedDate":"2023-09-13"},{"lineNumber":115,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":116,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":117,"author":{"gitId":"Angelyxx"},"content":" Matcher dayOfWeekmatcher \u003d dayOfWeekPattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":118,"author":{"gitId":"Angelyxx"},"content":" if (dayOfWeekmatcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":119,"author":{"gitId":"Angelyxx"},"content":" //get instance that matches pattern","lastModifiedDate":"2023-09-13"},{"lineNumber":120,"author":{"gitId":"Angelyxx"},"content":" String dayOfWeekStr \u003d dayOfWeekmatcher.group(1).toLowerCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":121,"author":{"gitId":"Angelyxx"},"content":" DayOfWeek dayOfWeek \u003d getDayOfWeekFromAbbreviation(dayOfWeekStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":122,"author":{"gitId":"Angelyxx"},"content":" int daysUntilNext \u003d calculateNoOfDays(dayOfWeek);","lastModifiedDate":"2023-09-13"},{"lineNumber":123,"author":{"gitId":"Angelyxx"},"content":" return today.plusDays(daysUntilNext);","lastModifiedDate":"2023-09-13"},{"lineNumber":124,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":125,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":126,"author":{"gitId":"Angelyxx"},"content":" return null; // Return null if no natural language date match is found","lastModifiedDate":"2023-09-13"},{"lineNumber":127,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":128,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":129,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":130,"author":{"gitId":"Angelyxx"},"content":" * Parses a String as a natural language date and time, e.g., \"Mon 4pm\".","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":132,"author":{"gitId":"Angelyxx"},"content":" * @param input String representation of a natural language date and time.","lastModifiedDate":"2023-09-13"},{"lineNumber":133,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDateTime object representing the parsed date and time or null if parsing fails.","lastModifiedDate":"2023-09-13"},{"lineNumber":134,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":135,"author":{"gitId":"Angelyxx"},"content":" public static LocalDateTime parseNaturalDateTime(String input) {","lastModifiedDate":"2023-09-13"},{"lineNumber":136,"author":{"gitId":"Angelyxx"},"content":" // Extract day of the week and time using regex","lastModifiedDate":"2023-09-13"},{"lineNumber":137,"author":{"gitId":"Angelyxx"},"content":" Pattern pattern \u003d Pattern.compile(","lastModifiedDate":"2023-09-13"},{"lineNumber":138,"author":{"gitId":"Angelyxx"},"content":" \"\\\\b(Today|Tomorrow|Mon|Tue(s)?|Wed(s)|Wed(nes)?|Thu(rs)?|Fri|Sat(ur)?|Sun)(day)?\\\\s+\\\\b\",","lastModifiedDate":"2023-09-13"},{"lineNumber":139,"author":{"gitId":"Angelyxx"},"content":" Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":140,"author":{"gitId":"Angelyxx"},"content":" Matcher matcher \u003d pattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":141,"author":{"gitId":"Angelyxx"},"content":" if (matcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":142,"author":{"gitId":"Angelyxx"},"content":" String naturalDateStr \u003d matcher.group(0).toLowerCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":143,"author":{"gitId":"Angelyxx"},"content":" int dayOfWeekStrLength \u003d naturalDateStr.length();","lastModifiedDate":"2023-09-13"},{"lineNumber":144,"author":{"gitId":"Angelyxx"},"content":" String potentialTimeStr \u003d input.substring(dayOfWeekStrLength).trim().toUpperCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":145,"author":{"gitId":"Angelyxx"},"content":" LocalDate date \u003d parseNaturalDate(naturalDateStr.trim());","lastModifiedDate":"2023-09-13"},{"lineNumber":146,"author":{"gitId":"Angelyxx"},"content":" LocalTime time \u003d parseTime(potentialTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":147,"author":{"gitId":"Angelyxx"},"content":" if (date !\u003d null \u0026\u0026 time !\u003d null) {","lastModifiedDate":"2023-09-13"},{"lineNumber":148,"author":{"gitId":"Angelyxx"},"content":" LocalDateTime dateTime \u003d date.atTime(time);","lastModifiedDate":"2023-09-13"},{"lineNumber":149,"author":{"gitId":"Angelyxx"},"content":" return dateTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":150,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":151,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":152,"author":{"gitId":"Angelyxx"},"content":" return null;","lastModifiedDate":"2023-09-13"},{"lineNumber":153,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":154,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":155,"author":{"gitId":"Angelyxx"},"content":" private static DayOfWeek getDayOfWeekFromAbbreviation(String abbreviation) {","lastModifiedDate":"2023-09-13"},{"lineNumber":156,"author":{"gitId":"Angelyxx"},"content":" //Map to store the mappings from abbreviations to DayOfWeek enum constants","lastModifiedDate":"2023-09-13"},{"lineNumber":157,"author":{"gitId":"Angelyxx"},"content":" Map\u003cString, DayOfWeek\u003e abbreviationMap \u003d new HashMap\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":158,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"mon\", DayOfWeek.MONDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":159,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"tue\", DayOfWeek.TUESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":160,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"tues\", DayOfWeek.TUESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":161,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"wed\", DayOfWeek.WEDNESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":162,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"weds\", DayOfWeek.WEDNESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":163,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"wednes\", DayOfWeek.WEDNESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":164,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"thu\", DayOfWeek.THURSDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":165,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"thur\", DayOfWeek.THURSDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":166,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"thurs\", DayOfWeek.THURSDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":167,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"fri\", DayOfWeek.FRIDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":168,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"sat\", DayOfWeek.SATURDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":169,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"satur\", DayOfWeek.SATURDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":170,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"sun\", DayOfWeek.SUNDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":171,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":172,"author":{"gitId":"Angelyxx"},"content":" return abbreviationMap.get(abbreviation.toLowerCase());","lastModifiedDate":"2023-09-13"},{"lineNumber":173,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":174,"author":{"gitId":"Angelyxx"},"content":" private static int calculateNoOfDays(DayOfWeek dayOfWeek) {","lastModifiedDate":"2023-09-13"},{"lineNumber":175,"author":{"gitId":"Angelyxx"},"content":" int daysUntilNext \u003d dayOfWeek.getValue() - today.getDayOfWeek().getValue();","lastModifiedDate":"2023-09-13"},{"lineNumber":176,"author":{"gitId":"Angelyxx"},"content":" if (daysUntilNext \u003c\u003d 0) { //check if weekday has passed","lastModifiedDate":"2023-09-13"},{"lineNumber":177,"author":{"gitId":"Angelyxx"},"content":" daysUntilNext +\u003d 7; // Move to the next week","lastModifiedDate":"2023-09-13"},{"lineNumber":178,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":179,"author":{"gitId":"Angelyxx"},"content":" return daysUntilNext;","lastModifiedDate":"2023-09-13"},{"lineNumber":180,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":181,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":182,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":182}},{"path":"src/main/java/exception/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package exception;","lastModifiedDate":"2023-09-01"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" super(message);","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-01"}],"authorContributionMap":{"Angelyxx":7}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" styleClass\u003d\"unique\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"50.0\" fitWidth\u003d\"50.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":17}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.image.Image?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"duke.main.MainWindow\" style\u003d\"-fx-background-color: #ffffff;\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\" AnchorPane.bottomAnchor\u003d\"1.0\" promptText\u003d\"Type a message\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" \u003cfx:define\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" \u003cImage fx:id\u003d\"btnImage\" url\u003d\"@/images/SendButton.png\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" \u003c/fx:define\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" \u003cButton fx:id\u003d\"sendButton\" opacity\u003d\"0.5\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" \u003cgraphic\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" \u003cImageView image \u003d\"$btnImage\" fitHeight\u003d\"33.0\" fitWidth\u003d\"33.0\" layoutX\u003d\"362.0\" layoutY\u003d\"562.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"\u003e\u003c/ImageView\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" \u003c/graphic\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" vbarPolicy\u003d\"AS_NEEDED\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":29}},{"path":"src/test/java/duke/main/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.command.Command;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeadlineCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.command.EventCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ToDoCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeleteCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import duke.command.MarkCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.command.UnmarkCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ExitCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ListCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertThrows;","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"public class ParserTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public void parseByeCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"bye\");","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof ExitCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" public void parseListCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"list\");","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof ListCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" public void parseToDoCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"todo Buy groceries\");","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof ToDoCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" public void parseDeadlineCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"deadline Submit report /by 2023-09-15\");","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof DeadlineCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public void parseEventCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"event Party /from 2023-09-20 1400 /to 2023-09-20 1800\");","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof EventCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" public void parseMarkCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"mark 2\");","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof MarkCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" public void parseUnmarkCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"unmark 3\");","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof UnmarkCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" public void parseDeleteCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"delete 4\");","lastModifiedDate":"2023-08-31"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof DeleteCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" public void parseInvalidCommandTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" assertThrows(DukeException.class, () -\u003e Parser.parse(\"invalid command\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":71}},{"path":"src/test/java/duke/main/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import java.io.File;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"public class StorageTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" public void loadTasksFromFileTest() throws DukeException, IOException {","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" // Prepare a temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" File tempFile \u003d File.createTempFile(\"test\", \".txt\");","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" String tempFilePath \u003d tempFile.getAbsolutePath();","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" Storage storage \u003d new Storage(tempFilePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" // Create a sample task list","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e expectedTaskList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" expectedTaskList.add(new ToDo(\"Sample ToDo Task\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" expectedTaskList.add(new Deadline(\"Sample Deadline Task\", \"31/08/2023\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" expectedTaskList.add(new Event(\"Sample Event Task\",","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" \"31/08/2023 1600\",\"31/08/2023 1800\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" // Save the sample task list to the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" TaskList taskListToSave \u003d new TaskList(expectedTaskList);","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(taskListToSave);","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" // Load tasks from the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e loadedTaskList \u003d storage.loadTasksFromFile();","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" // Clean up the temporary file","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" tempFile.delete();","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" // Verify the loaded task list matches the expected task list","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" assertEquals(expectedTaskList.size(), loadedTaskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" for (int i \u003d 0; i \u003c expectedTaskList.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" assertEquals(expectedTaskList.get(i).getDescription(), loadedTaskList.get(i).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" assertEquals(expectedTaskList.get(i).isDone(), loadedTaskList.get(i).isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" public void saveTasksToFileTest() throws DukeException, IOException {","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" // Prepare a temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" File tempFile \u003d File.createTempFile(\"test\", \".txt\");","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" String tempFilePath \u003d tempFile.getAbsolutePath();","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" Storage storage \u003d new Storage(tempFilePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" // Create a sample task list","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e taskListToSave \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" taskListToSave.add(new ToDo(\"Sample ToDo Task\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" taskListToSave.add(new Deadline(\"Sample Deadline Task\", \"31/08/2023\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" taskListToSave.add(new Event(\"Sample Event Task\",","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" \"31/08/2023 1600\",\"31/08/2023 1800\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" // Save the sample task list to the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(new TaskList(taskListToSave));","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" // Load tasks from the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e loadedTaskList \u003d storage.loadTasksFromFile();","lastModifiedDate":"2023-08-31"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" // Clean up the temporary file","lastModifiedDate":"2023-08-31"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" tempFile.delete();","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" // Verify the loaded task list matches the originally saved task list","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" assertEquals(taskListToSave.size(), loadedTaskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" for (int i \u003d 0; i \u003c taskListToSave.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" assertEquals(taskListToSave.get(i).getDescription(), loadedTaskList.get(i).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" assertEquals(taskListToSave.get(i).isDone(), loadedTaskList.get(i).isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":81}},{"path":"src/test/java/duke/main/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertFalse;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" public void addTaskTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" //create tasks","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" Task toDo \u003d new ToDo(\"Buy groceries\");","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" Task deadline \u003d new Deadline(\"Sample Deadline Task\", \"31/08/2023\");","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" Task event \u003d new Event(\"Sample Event Task\",","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" \"31/08/2023 1600\",\"31/08/2023 1800\");","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" taskList.add(toDo);","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" taskList.add(deadline);","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" taskList.add(event);","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" assertEquals(3, taskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" assertEquals(toDo, taskList.get(0));","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" assertEquals(deadline, taskList.get(1));","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" assertEquals(event, taskList.get(2));","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void deleteTaskTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" Task task1 \u003d new ToDo(\"Complete assignment\");","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" Task task2 \u003d new ToDo(\"Read a book\");","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task1);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task2);","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" taskList.delete(0);","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" assertEquals(1, taskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" assertEquals(task2, taskList.get(0));","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" public void markTaskDoneTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" Task task \u003d new ToDo(\"Go for a run\");","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task);","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" taskList.markDone(0);","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" assertTrue(task.isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" public void unmarkTaskNotDoneTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" Task task \u003d new ToDo(\"Write code\");","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" task.markDone(); // Mark the task as done initially","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task);","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" taskList.markNotDone(0);","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" assertFalse(task.isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":63}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"# Duke","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"Duke is a friendly chatbot application for task management. You can interact with Duke through the use of a Graphical User Interface (GUI), and keep track of tasks such as your to-dos, deadlines, and events.","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"* Setting up in Intellij","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"* Features","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" * Add a to-do: ```todo```","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Add a deadline: ```deadline```","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Add an event: ```event```","lastModifiedDate":"2023-09-21"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * List all tasks: ```list```","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Mark a task as done: ```mark```","lastModifiedDate":"2023-09-21"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" * Unmark a task: ```unmark```","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Find a task by keyword: ```find```","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" * Delete a specific task: ```delete```","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * Exiting the program: ```exit``` or ```bye```","lastModifiedDate":"2023-09-21"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":22,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":23,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":24,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":25,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":27,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":28,"author":{"gitId":"-"},"content":"3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:","lastModifiedDate":"2021-07-29"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":"## Features","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":"### Notes about command format","lastModifiedDate":"2023-09-21"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"1. Items in ```UPPER_CASE``` are parameters to be supplied by the user.","lastModifiedDate":"2023-09-21"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" e.g. in ```todo TASK_DESCRIPTION```, ```TASK_DESCRIPTION``` is a parameter which can be used as todo homework.","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":"2. Items in square brackets are optional.","lastModifiedDate":"2023-09-21"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline TASK_DESCRIPTION /by DATE [TIME]``` can be used as ```deadline IS1108 Assignment /by 7/11/2023``` or ```deadline IS1108 Assignment /by 7/11/2023 1500```","lastModifiedDate":"2023-09-21"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"3. All ```DATE``` parameters can be put in multiple formats.","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline TASK_DESCRIPTION /by DATE [TIME]``` can be used as ```deadline IS1108 Assignment /by 2023-09-08```, ```deadline IS1108 Assignment /by 8/9/2023``` or ```deadline IS1108 Assignment /by Mon```","lastModifiedDate":"2023-09-21"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"4. All weekday abbreviations in ```DATE``` parameters refers to the coming weekday","lastModifiedDate":"2023-09-21"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline IS1108 Assignment /by Mon``` refers to next Monday.","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":"5. All ```[TIME]``` parameters can be put as either in 12-Hour clock format or 24-Hour clock format.","lastModifiedDate":"2023-09-21"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" e.g. ```deadline TASK_DESCRIPTION /by DATE [TIME]``` can be used as ```deadline IS1108 Assignment /by Mon 11.59pm```, ","lastModifiedDate":"2023-09-21"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" ```deadline IS1108 Assignment /by Mon 2359``` or ```deadline IS1108 Assignment /by Mon 23:59```","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"6. Extraneous parameters for commands that do not take in parameters (such as ```list``` and ```clear```) will be ignored.","lastModifiedDate":"2023-09-21"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" e.g. if the command specifies ```list 123```, it will be interpreted as ```list```.","lastModifiedDate":"2023-09-21"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" ","lastModifiedDate":"2023-09-21"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":"### Add a to-do: ```todo```","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":"Adds a to-do task to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":"Format: ```todo TASK_DESCRIPTION```","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"```todo update README```","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":"```todo finish CS2100 Assignment```","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":"### Add a deadline: ```deadline```","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":"Adds a deadline to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"Format: ```deadline TASK_DESCRIPTION /from DATE [TIME]```","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"```deadline update README /from Mon 4pm```","lastModifiedDate":"2023-09-21"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":"```deadline return book /by 2/12/2023 1800```","lastModifiedDate":"2023-09-21"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"### Add an event: ```event```","lastModifiedDate":"2023-09-21"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":"Adds an event to your task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":"Format: ```event TASK_DESCRIPTION /from DATE [TIME] /to DATE [TIME]```","lastModifiedDate":"2023-09-21"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"```event Sleepover /from Thurs /to Fri```","lastModifiedDate":"2023-09-21"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":"```event Orientation Camp /from 8/10/2023 /to 11/10/2023```","lastModifiedDate":"2023-09-21"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"```event ST2334 Finals /from 27/11/2023 1600 /to 27/11/2023 1800```","lastModifiedDate":"2023-09-21"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":"### List all tasks: ```list```","lastModifiedDate":"2023-09-21"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":"List all tasks that have been added.","lastModifiedDate":"2023-09-21"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":"Format: ```list```","lastModifiedDate":"2023-09-21"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":"### Mark a task as done: ```mark```","lastModifiedDate":"2023-09-21"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":"Marks a task as done.","lastModifiedDate":"2023-09-21"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":"Format: ```mark INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":"* Marks a task as done at the specified ```INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":"* The index refers to index number shown in the displayed task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":"```mark 3```","lastModifiedDate":"2023-09-21"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":"### Unmark a task: ```unmark```","lastModifiedDate":"2023-09-21"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":"Unmarks a task that has been previously marked as done.","lastModifiedDate":"2023-09-21"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":"Format: ```mark INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":"* unmarks a task at the specified ```INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":"* The index refers to index number shown in the displayed task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":"```unmark 3```","lastModifiedDate":"2023-09-21"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":"### Find a task by keyword: ```find```","lastModifiedDate":"2023-09-21"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":"Finds a task which contains the given keyword.","lastModifiedDate":"2023-09-21"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":"Format: ```find KEYWORD```","lastModifiedDate":"2023-09-21"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":"* Only the task description is searched","lastModifiedDate":"2023-09-21"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":"* Only full words will be matched e.g. meeting will not match meetings","lastModifiedDate":"2023-09-21"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":"```find meeting```","lastModifiedDate":"2023-09-21"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":"\u003cimg width\u003d\"383\" alt\u003d\"find command example\" src\u003d\"https://github.com/Angelyxx/ip/assets/73735276/6b280df6-140d-4b64-aba5-1e33dac4b4be\"\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":"### Delete a specific task: ```delete```","lastModifiedDate":"2023-09-21"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":"Deletes an existing task.","lastModifiedDate":"2023-09-21"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":"Format: ```delete INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":"* Deletes a task at the specified ```INDEX```","lastModifiedDate":"2023-09-21"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":"* The index refers to index number shown in the displayed task list.","lastModifiedDate":"2023-09-21"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":"Examples:","lastModifiedDate":"2023-09-21"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":"```delete 3```","lastModifiedDate":"2023-09-21"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-21"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":"### Exiting the program: ```exit``` or ```bye```","lastModifiedDate":"2023-09-21"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":"Exits the duke chatbot.","lastModifiedDate":"2023-09-21"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":"Format: ```exit``` or ```bye```","lastModifiedDate":"2023-09-21"}],"authorContributionMap":{"Angelyxx":95,"-":14}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" mainClass.set(\"duke.main.Launcher\") //set to main class","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" archiveFileName \u003d \"duke.jar\"","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Angelyxx":17,"-":38}},{"path":"src/main/java/duke/command/Command.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a base class for different commands for Duke.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public abstract class Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Executes the command with the given parameters.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public abstract void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * Checks if the command is an exit command.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @return True if the command is an exit command, false otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" public boolean isExit() {","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" return false;","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":30}},{"path":"src/main/java/duke/command/DeadlineCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to add a deadline task to the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class DeadlineCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private String deadlineBy;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Constructs a DeadlineCommand with the given description and deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" * @param description The description of the deadline task.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * @param deadlineBy The deadline of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" public DeadlineCommand(String description, String deadlineBy) {","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" this.deadlineBy \u003d deadlineBy;","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * Executes the DeadlineCommand by adding a new Deadline task to the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the tasks to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" Deadline deadline \u003d new Deadline(description, deadlineBy);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" tasks.add(deadline);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" ui.displayCompletionMessage(deadline, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/command/DeleteCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to delete a task from the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class DeleteCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private int index; //index of task to be deleted","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a DeleteCommand with the specified task index.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be deleted.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public DeleteCommand(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" assert index \u003e 0 : \"Index must be a positive integer.\";","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" this.index \u003d index - 1;","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * Executes the DeleteCommand by removing the task from the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" * displaying a deletion message, and saving the updated task list to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" assert index \u003e 0 : \"Index must be a positive integer.\";","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" Task removedTask \u003d tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" tasks.delete(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" ui.printDeleteMessage(removedTask, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please provide a valid task index to delete.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":46}},{"path":"src/main/java/duke/command/EventCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to add an event task to the task list.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"public class EventCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" private String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String startDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private String endDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Constructs an EventCommand with the given event details.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" * @param description The description of the event.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * @param startDateTimeStr The start date and time of the event as a string.","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * @param endDateTimeStr The end date and time of the event as a string.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" public EventCommand(String description, String startDateTimeStr, String endDateTimeStr) {","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" this.startDateTimeStr \u003d startDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" this.endDateTimeStr \u003d endDateTimeStr;","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * Executes the EventCommand by adding a new Event task to the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the tasks to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" Event event \u003d new Event(description, startDateTimeStr, endDateTimeStr);","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" tasks.add(event);","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" ui.displayCompletionMessage(event, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":46}},{"path":"src/main/java/duke/command/ExitCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to exit the chatBot.","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Executes the ExitCommand by printing an exit message to the user interface.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks.","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) {","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" ui.printExit();","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Checks if the command is an exit command.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" * @return True if this an exit command.","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" public boolean isExit() {","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" return true;","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":32}},{"path":"src/main/java/duke/command/FindCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-09-01"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to find all tasks containing a keyword.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class FindCommand extends Command {","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private String keyword;","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Constructs an FindCommand with the specified keyword.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" * @param keyword The keyword to search for in the list of tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" public FindCommand(String keyword) {","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" this.keyword \u003d keyword;","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * Executes the FindCommand by finding all tasks containing the keyword.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e filteredTasks \u003d tasks.find(keyword);","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" ui.printTaskList(filteredTasks, \"Here are the matching tasks in your list:\");","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-01"}],"authorContributionMap":{"Angelyxx":38}},{"path":"src/main/java/duke/command/ListCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to list all tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * Executes the ListCommand by printing the list of all tasks to the user interface.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) {","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" ui.printTaskList(tasks.getAllTasks(), \"Here are your entries:\");","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":23}},{"path":"src/main/java/duke/command/MarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to mark a task as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class MarkCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private int index; //index of task to mark","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a MarkCommand with the specified task index.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public MarkCommand(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" this.index \u003d index - 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Executes the MarkCommand by marking a task as done, displaying a completion message,","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * and saving the updated task list to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" Task markTask \u003d tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" tasks.markDone(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" ui.printMessage(\"Nice! I\u0027ve marked this task as done:\\n\\t\", markTask);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please provide a valid task index to mark.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/command/ToDoCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to add a \"Todo\" task.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class ToDoCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String description;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a ToDoCommand with the given description.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param description The description of the \"To-Do\" task.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public ToDoCommand(String description) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Executes the ToDoCommand by adding a new \"To-Do\" task to the task list,","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the tasks to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there\u0027s an error during command execution.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" ToDo todo \u003d new ToDo(description);","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" tasks.add(todo);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" ui.displayCompletionMessage(todo, tasks.size());","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":41}},{"path":"src/main/java/duke/command/UnmarkCommand.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.command;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.main.TaskList;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.main.Ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" * Represents a command to mark a task as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class UnmarkCommand extends Command {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private int index; //index of task to mark","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs an UnMarkCommand with the specified task index.","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public UnmarkCommand(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" this.index \u003d index - 1;","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * Executes the UnMarkCommand by marking a task as not done,","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" * displaying a completion message, and saving the updated task list to storage.","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to operate on.","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * @param ui The user interface for displaying messages.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * @param storage The storage for saving tasks to a file.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the provided task index is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void execute(TaskList tasks, Ui ui, Storage storage) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" Task unmarkTask \u003d tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" tasks.markNotDone(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" ui.printMessage(\"OK, I\u0027ve marked this task as not done yet:\\n\\t\", unmarkTask);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(tasks);","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please provide a valid task index to be unmarked.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/exception/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.exception;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" * An exception class for representing exceptions to the Duke application.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Constructs a DukeException with the specified error message.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * @param message The error message associated with the exception.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" super(message);","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":16}},{"path":"src/main/java/duke/main/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.Priority;","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" private Label dialog;","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" // Inside your DialogBox constructor","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" HBox.setHgrow(this, Priority.ALWAYS); // Allow horizontal growth if needed","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" VBox.setVgrow(dialog, Priority.ALWAYS); // Allow vertical growth for the Label","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" private void flip() {","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" DialogBox db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" db.loadCss(\"/styles/user-dialog-box.css\");","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" db.getStyleClass().add(\"user-dialog-box\");","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" return db;","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" DialogBox db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" db.flip();","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" db.loadCss(\"/styles/duke-dialog-box.css\");","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" db.getStyleClass().add(\"duke-dialog-box\");","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" return db;","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" private void loadCss(String cssFilePath) {","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" if (cssFilePath !\u003d null \u0026\u0026 !cssFilePath.isEmpty()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" this.getStylesheets().add(getClass().getResource(cssFilePath).toExternalForm());","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" System.out.println(\"CSS Stylesheet not found.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":79}},{"path":"src/main/java/duke/main/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.command.Command;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" * The main class that initializes and runs the Duke Chat Bot.","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"public class Duke {","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" private static final String DATA_FILE_PATH \u003d \"./data/duke.txt\";","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" private Storage storage;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" private TaskList tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private Ui ui;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private boolean isExit \u003d false;","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Duke instance with the specified data file path.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" Duke() {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" storage \u003d new Storage(DATA_FILE_PATH);","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" tasks \u003d new TaskList(storage.loadTasksFromFile());","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" tasks \u003d new TaskList();","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" String getResponse(String input) {","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" if (isExit) {","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" return \"\";","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" ui.resetOutput();","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" Command c \u003d Parser.parse(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" c.execute(tasks, ui, storage);","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" isExit \u003d c.isExit();","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" return ui.getOutput();","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" return e.getMessage();","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":44}},{"path":"src/main/java/duke/main/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"public class Launcher {","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":12}},{"path":"src/main/java/duke/main/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * A GUI for Duke.","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" stage.setTitle(\"Duke\");","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-21"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" stage.show();","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":31}},{"path":"src/main/java/duke/main/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" private Duke duke;","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.png\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/Duke.png\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * Initialises the GUI for Duke.","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" public void initialize() {","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" showGreetingMessage();","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" );","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" userInput.clear();","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" @FXML","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" private void showGreetingMessage() {","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" DialogBox.getDukeDialog(\"Welcome to Duke! What can I do for you today?\", dukeImage)","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" );","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":62}},{"path":"src/main/java/duke/main/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.command.Command;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeadlineCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeleteCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.command.EventCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ExitCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import duke.command.FindCommand;","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ListCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import duke.command.MarkCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ToDoCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import duke.command.UnmarkCommand;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" * Handles the parsing of user input commands to create corresponding Command objects.","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"public class Parser {","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * Parses the user input to create a corresponding Command object.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * @param userInput The user\u0027s input as a String.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @return A Command object representing the parsed user input.","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the user input is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" static Command parse(String userInput) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" if (userInput.startsWith(\"bye\") || userInput.startsWith(\"exit\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" return new ExitCommand();","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"list\")) {","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" return new ListCommand();","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"mark\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" int taskIndex \u003d validateMarkAndDelete(userInput.substring(5));","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" return new MarkCommand(taskIndex);","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"unmark\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" int taskIndex \u003d validateMarkAndDelete(userInput.substring(7));","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" return new UnmarkCommand(taskIndex);","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"todo\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" String toDoDescription \u003d validateToDo(userInput);","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" return new ToDoCommand(toDoDescription);","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"deadline\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" String[] info \u003d validateDeadline(userInput);","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" return new DeadlineCommand(info[0], info[1]);","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"event\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" String[] info \u003d validateEvent(userInput);","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" return new EventCommand(info[0], info[1], info[2]);","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"delete\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" int taskIndex \u003d validateMarkAndDelete(userInput.substring(7));","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" return new DeleteCommand(taskIndex);","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" } else if (userInput.startsWith(\"find\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" String keyword \u003d validateFind(userInput);","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" return new FindCommand(keyword);","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" * Validates and extracts the task index from the user input for mark and delete commands.","lastModifiedDate":"2023-09-01"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" * @param input The user input containing the task index.","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" * @return The validated task index as an integer.","lastModifiedDate":"2023-09-01"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the task index is not valid.","lastModifiedDate":"2023-09-01"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" private static int validateMarkAndDelete(String input) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" if (input.isEmpty() || !isNumeric(input)) {","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! The index cannot be blank or not an integer.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" return Integer.parseInt(input);","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" private static String validateFind(String input) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"find\".length();","lastModifiedDate":"2023-09-21"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" String keyWord \u003d input.trim().substring(commandLength).trim();","lastModifiedDate":"2023-09-21"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" if (keyWord.isEmpty()) {","lastModifiedDate":"2023-09-21"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Please enter a keyword to find.\");","lastModifiedDate":"2023-09-01"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" return keyWord;","lastModifiedDate":"2023-09-21"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" * Checks if a given String can be converted to an integer.","lastModifiedDate":"2023-09-01"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" * @param str The String to be checked.","lastModifiedDate":"2023-09-01"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" * @return True if the String can be converted to an integer, false otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" private static boolean isNumeric(String str) {","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" if (str \u003d\u003d null || str.equals(\"\")) {","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" return false;","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":" Integer.parseInt(str);","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" return true;","lastModifiedDate":"2023-08-31"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":" } catch (NumberFormatException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" return false;","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" * Validates a toDo description to ensure it is not empty.","lastModifiedDate":"2023-09-01"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" * @param input The toDo description to be validated.","lastModifiedDate":"2023-09-13"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the toDo description is empty.","lastModifiedDate":"2023-09-01"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" private static String validateToDo(String input) throws DukeException {","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"todo\".length(); //get length of string to remove","lastModifiedDate":"2023-09-13"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":" String description \u003d input.trim().substring(commandLength).trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":110,"author":{"gitId":"Angelyxx"},"content":" if (description.isEmpty()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":111,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":112,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":113,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":114,"author":{"gitId":"Angelyxx"},"content":" return description;","lastModifiedDate":"2023-09-13"},{"lineNumber":115,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":116,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":117,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":118,"author":{"gitId":"Angelyxx"},"content":" * Validates and extracts information from user input for creating a deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":119,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":120,"author":{"gitId":"Angelyxx"},"content":" * @param input The user input for creating a deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":121,"author":{"gitId":"Angelyxx"},"content":" * @return A String array containing the task description and deadline information.","lastModifiedDate":"2023-09-01"},{"lineNumber":122,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the input format is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":123,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":124,"author":{"gitId":"Angelyxx"},"content":" private static String[] validateDeadline(String input) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":125,"author":{"gitId":"Angelyxx"},"content":" // Split the input string into words","lastModifiedDate":"2023-09-13"},{"lineNumber":126,"author":{"gitId":"Angelyxx"},"content":" String[] splitInput \u003d input.split(\" /by \");","lastModifiedDate":"2023-09-13"},{"lineNumber":127,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":128,"author":{"gitId":"Angelyxx"},"content":" if (splitInput.length !\u003d 2) {","lastModifiedDate":"2023-09-13"},{"lineNumber":129,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(","lastModifiedDate":"2023-09-13"},{"lineNumber":130,"author":{"gitId":"Angelyxx"},"content":" \"☹ OOPS!!! Invalid deadline format. Please use: deadline \u003cdescription\u003e /by \u003cdate and time\u003e\");","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":132,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"deadline\".length(); //get length of string to remove","lastModifiedDate":"2023-09-13"},{"lineNumber":133,"author":{"gitId":"Angelyxx"},"content":" String description \u003d splitInput[0].substring(commandLength).trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":134,"author":{"gitId":"Angelyxx"},"content":" String dateTime \u003d splitInput[1].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":135,"author":{"gitId":"Angelyxx"},"content":" if (dateTime.isEmpty() || description.isBlank()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":136,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"☹ OOPS!!! Deadline description or date and time cannot be empty.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":137,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":138,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":139,"author":{"gitId":"Angelyxx"},"content":" return new String[] { description, dateTime };","lastModifiedDate":"2023-09-13"},{"lineNumber":140,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":141,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":142,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":143,"author":{"gitId":"Angelyxx"},"content":" * Validates and extracts information from user input for creating an event.","lastModifiedDate":"2023-09-01"},{"lineNumber":144,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":145,"author":{"gitId":"Angelyxx"},"content":" * @param input The user input for creating an event.","lastModifiedDate":"2023-09-01"},{"lineNumber":146,"author":{"gitId":"Angelyxx"},"content":" * @return An array containing the event description and timing information.","lastModifiedDate":"2023-09-01"},{"lineNumber":147,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If the input format is invalid.","lastModifiedDate":"2023-09-01"},{"lineNumber":148,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":149,"author":{"gitId":"Angelyxx"},"content":" private static String[] validateEvent(String input) throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":150,"author":{"gitId":"Angelyxx"},"content":" String[] splitInput \u003d input.split(\" /from | /to \");","lastModifiedDate":"2023-09-13"},{"lineNumber":151,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":152,"author":{"gitId":"Angelyxx"},"content":" if (splitInput.length !\u003d 3) {","lastModifiedDate":"2023-09-13"},{"lineNumber":153,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(","lastModifiedDate":"2023-09-13"},{"lineNumber":154,"author":{"gitId":"Angelyxx"},"content":" \"Invalid event format. Please use: event [description] /from [start date/time] /to [end date/time]\");","lastModifiedDate":"2023-09-13"},{"lineNumber":155,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":156,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":157,"author":{"gitId":"Angelyxx"},"content":" int commandLength \u003d \"event \".length(); //get length of string to remove","lastModifiedDate":"2023-09-13"},{"lineNumber":158,"author":{"gitId":"Angelyxx"},"content":" String description \u003d splitInput[0].substring(commandLength).trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":159,"author":{"gitId":"Angelyxx"},"content":" String startDateAndTime \u003d splitInput[1].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":160,"author":{"gitId":"Angelyxx"},"content":" String endDateAndTime \u003d splitInput[2].trim();","lastModifiedDate":"2023-09-13"},{"lineNumber":161,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":162,"author":{"gitId":"Angelyxx"},"content":" if (description.isBlank() || startDateAndTime.isBlank() || endDateAndTime.isBlank()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":163,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"Description and date/time cannot be empty.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":164,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":165,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":166,"author":{"gitId":"Angelyxx"},"content":" String[] eventInfo \u003d new String[3];","lastModifiedDate":"2023-09-13"},{"lineNumber":167,"author":{"gitId":"Angelyxx"},"content":" eventInfo[0] \u003d description;","lastModifiedDate":"2023-09-13"},{"lineNumber":168,"author":{"gitId":"Angelyxx"},"content":" eventInfo[1] \u003d startDateAndTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":169,"author":{"gitId":"Angelyxx"},"content":" eventInfo[2] \u003d endDateAndTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":170,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":171,"author":{"gitId":"Angelyxx"},"content":" return eventInfo;","lastModifiedDate":"2023-09-13"},{"lineNumber":172,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":173,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":174,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":174}},{"path":"src/main/java/duke/main/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.io.File;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Handles the loading and saving of tasks to a data file.","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"public class Storage {","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" private String filePath;","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Storage instance with the specified file path.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @param filePath The file path where task data will be stored and loaded from.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" Storage(String filePath) {","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * Loads tasks from the data file and returns them as a list.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @return An ArrayList containing the loaded tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there is an error during the loading process.","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" public ArrayList\u003cTask\u003e loadTasksFromFile() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" return tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" Scanner scanner \u003d new Scanner(file);","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" while (scanner.hasNextLine()) {","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" String data \u003d scanner.nextLine();","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" String[] taskData \u003d data.split(\" \\\\| \");","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" Task task;","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" //taskData[0] \u003d task type","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" //taskData[1] \u003d Done status","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" //taskData[2] \u003d description","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" boolean isDone \u003d taskData[1].equals(\"1\");","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" switch (taskData[0]) {","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" case \"T\":","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" task \u003d new ToDo(taskData[2]);","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" case \"D\":","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" task \u003d new Deadline(taskData[2], taskData[3]);","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" case \"E\":","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" String[] eventData \u003d taskData[3].split(\" to \");","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" task \u003d new Event(taskData[2], eventData[0], eventData[1]);","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" break;","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" default:","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" System.out.println(\"error: unknown task type found in file.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" continue; // Skip to the next line","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" // Set done status","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" if (isDone) {","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" task.markDone();","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" task.markNotDone();","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-01"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" return tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"Error loading file: IOException occurred.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" * Saves tasks to the data file.","lastModifiedDate":"2023-09-01"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The TaskList containing the tasks to be saved.","lastModifiedDate":"2023-09-01"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":" * @throws DukeException If there is an error during the saving process.","lastModifiedDate":"2023-09-01"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":" public void saveTasksToFile(TaskList tasks) throws DukeException {","lastModifiedDate":"2023-09-01"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-08-31"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" FileWriter fileWriter \u003d new FileWriter(filePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" for (Task task: tasks.getAllTasks()) {","lastModifiedDate":"2023-09-01"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":" fileWriter.write(task.toFileString() + \"\\n\");","lastModifiedDate":"2023-08-31"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" fileWriter.close();","lastModifiedDate":"2023-08-31"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-31"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" throw new DukeException(\"Error saving file: IOException occurred.\");","lastModifiedDate":"2023-08-31"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":107}},{"path":"src/main/java/duke/main/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Represents a list of tasks and provides methods for managing tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"public class TaskList {","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" private ArrayList\u003cTask\u003e tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" * Constructs an empty TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" TaskList() {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" this.tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * Constructs a TaskList with an existing list of tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * @param tasks An ArrayList of tasks to populate the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" TaskList(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" * Retrieves all tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" * @return An ArrayList containing all tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public ArrayList\u003cTask\u003e getAllTasks() {","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" return tasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" * Retrieves a task at a specific index in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to retrieve.","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * @return The task at the specified index.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public Task get(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" assert index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size() : \"Invalid index\";","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" return tasks.get(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" * Adds a task to the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" * @param task The task to be added.","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" public void add(Task task) {","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-01"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" * Deletes a task from the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be deleted.","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" public void delete(int index) {","lastModifiedDate":"2023-09-01"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" tasks.remove(index);","lastModifiedDate":"2023-09-01"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" * Retrieves the total number of tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" * @return The total number of tasks in the TaskList.","lastModifiedDate":"2023-09-01"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" public int size() {","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" return tasks.size();","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" public void markDone(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" tasks.get(index).markDone();","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" * @param index The index of the task to be marked as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" public void markNotDone(int index) {","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" tasks.get(index).markNotDone();","lastModifiedDate":"2023-09-01"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":" * Returns list of task containing a keyword","lastModifiedDate":"2023-09-01"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" * @param keyword Keyword to find in the tasks.","lastModifiedDate":"2023-09-01"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":" public ArrayList\u003cTask\u003e find(String keyword) {","lastModifiedDate":"2023-09-01"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e filteredTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-01"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" for (Task t : tasks) {","lastModifiedDate":"2023-09-01"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":" if (t.getDescription().contains(keyword)) {","lastModifiedDate":"2023-09-01"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" filteredTasks.add(t);","lastModifiedDate":"2023-09-01"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" return filteredTasks;","lastModifiedDate":"2023-09-01"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":109}},{"path":"src/main/java/duke/main/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" * Handles interactions with the user interface, displaying messages","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * and receiving user input.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"public class Ui {","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private StringBuilder output;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" Ui() {","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" output \u003d new StringBuilder();","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" void resetOutput() {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" output.setLength(0);","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" String getOutput() {","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" return output.toString();","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" private void addToOutput(String str) {","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" output.append(str);","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * Displays an error message to the user.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @param message The error message to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" public void showError(String message) {","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" addToOutput(message);","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" * Displays a completion message after adding a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * @param task The task that was added.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" * @param size The total number of tasks after adding the new task.","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" public void displayCompletionMessage(Task task , int size) {","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\tGot it. I\u0027ve added this task:\");","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\n\\t\\t\" + task);","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\n\\tNow you have \" + size + \" tasks in the list.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" * Displays a message along with a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" * @param message The message to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" * @param task The task to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" public void printMessage(String message, Task task) {","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\t\" + message + task.toString());","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" * Displays the exit message to the user.","lastModifiedDate":"2023-09-01"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" public void printExit() {","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\tBye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" * Displays the list of tasks to the user.","lastModifiedDate":"2023-09-01"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" * @param tasks The list of tasks to be displayed.","lastModifiedDate":"2023-09-01"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" public void printTaskList(ArrayList\u003cTask\u003e tasks, String message) {","lastModifiedDate":"2023-09-01"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" addToOutput(message);","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-01"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\n\" + (i + 1) + \". \" + tasks.get(i).toString());","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" * Displays a message after removing a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" * @param removedTask The task that was removed.","lastModifiedDate":"2023-09-01"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":" * @param size The total number of tasks after removing the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" public void printDeleteMessage(Task removedTask, int size) {","lastModifiedDate":"2023-08-31"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"Noted. I\u0027ve removed this task:\\n\\t\" + removedTask);","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" addToOutput(\"\\nNow you have \" + size + \" tasks in the list.\");","lastModifiedDate":"2023-09-13"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":91}},{"path":"src/main/java/duke/task/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.util.DateParser;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Represents a task with a deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-26"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" private String deadlineBy;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" private LocalDate deadlineDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" private LocalDateTime deadlineDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Deadline object with the task description and deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @param deadlineBy Deadline of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" public Deadline(String description, String deadlineBy) {","lastModifiedDate":"2023-08-26"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" super(description);","lastModifiedDate":"2023-08-26"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" this.deadlineDate \u003d DateParser.parseDate(deadlineBy);","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" this.deadlineDateTime \u003d DateParser.parseDateTime(deadlineBy);","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" this.deadlineBy \u003d deadlineBy;","lastModifiedDate":"2023-08-26"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of deadline object to write to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the deadline object to be written to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"D\";","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone() ? \"1\" : \"0\") + \" | \" + this.description + \" | \" + this.deadlineBy;","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" * The string representation of deadline object.","lastModifiedDate":"2023-09-01"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the deadline object.","lastModifiedDate":"2023-09-01"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" if (deadlineDateTime !\u003d null) {","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" String formattedDate \u003d deadlineDateTime.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[D]%s (by: %s)\", super.toString(), formattedDate);","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" } else if (deadlineDate !\u003d null) {","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" String formattedDate \u003d deadlineDate.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[D]%s (by: %s)\", super.toString(), formattedDate);","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" } else {","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[D]%s (by: %s)\", super.toString(), deadlineBy);","lastModifiedDate":"2023-08-26"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"Angelyxx":64}},{"path":"src/main/java/duke/task/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.util.DateParser;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Represents a task with a starting and ending date.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-26"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" private String startDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" private String endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" private LocalDate startDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" private LocalDate endDate;","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" private LocalDateTime startDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" private LocalDateTime endDateTime;","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * Constructs an Event object with the task description,","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" * starting date (and time) of event and ending date (and time) of the event.","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @param startDateTimeStr Start date (and time) of the event","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" * @param endDateTimeStr End date (and time) of the event","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" public Event(String description, String startDateTimeStr, String endDateTimeStr) {","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" super(description);","lastModifiedDate":"2023-08-26"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" this.startDate \u003d DateParser.parseDate(startDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" this.endDate \u003d DateParser.parseDate(endDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" this.startDateTime \u003d DateParser.parseDateTime(startDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" this.endDateTime \u003d DateParser.parseDateTime(endDateTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" this.startDateTimeStr \u003d startDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" this.endDateTimeStr \u003d endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of event object to write to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the event object to be written to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"E\";","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone() ? \"1\" : \"0\") + \" | \" + this.description + \" | \"","lastModifiedDate":"2023-09-01"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" + this.startDateTimeStr + \" to \" + this.endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" * The string representation of event object.","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the event object.","lastModifiedDate":"2023-09-01"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" String startStr \u003d startDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" String endStr \u003d endDateTimeStr;","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" if (startDateTime !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" startStr \u003d startDateTime.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" } else if (startDate !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" startStr \u003d startDate.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" if (endDateTime !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" endStr \u003d endDateTime.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy HH:mm\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" } else if (endDate !\u003d null) {","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" endStr \u003d endDate.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" return String.format(\"[E]%s (from: %s to %s)\", super.toString(), startStr, endStr);","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-26"}],"authorContributionMap":{"Angelyxx":76}},{"path":"src/main/java/duke/task/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" * Represents a task.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"public class Task {","lastModifiedDate":"2023-08-26"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":" protected String description;","lastModifiedDate":"2023-08-26"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-26"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * Constructs a Task object with a description.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" public Task(String description) {","lastModifiedDate":"2023-08-26"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" assert description !\u003d null : \"Description cannot be null\";","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-26"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-26"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" * Returns an X icon based on whether a task is done.","lastModifiedDate":"2023-09-01"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" * @return \"X\" if a task is done, \" \" otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-26"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" return (isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-26"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * Returns a description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" * @return Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" public String getDescription() {","lastModifiedDate":"2023-08-26"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" return description;","lastModifiedDate":"2023-08-26"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" * Returns whether a task has been completed.","lastModifiedDate":"2023-09-01"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" * @return True is task is done, false otherwise.","lastModifiedDate":"2023-09-01"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public boolean isDone() {","lastModifiedDate":"2023-09-01"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" return isDone;","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as done.","lastModifiedDate":"2023-09-01"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" public void markDone() {","lastModifiedDate":"2023-08-26"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-26"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" * Marks a task as not done.","lastModifiedDate":"2023-09-01"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" public void markNotDone() {","lastModifiedDate":"2023-08-26"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-26"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of the Task object to write to the file.","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the Task object to be written to the file.","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"T\"; // Default type for base Task","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone ? \"1\" : \"0\") + \" | \" + description;","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" return \"[\" + this.getStatusIcon() + \"] \" + this.getDescription();","lastModifiedDate":"2023-08-26"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-26"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-26"}],"authorContributionMap":{"Angelyxx":79}},{"path":"src/main/java/duke/task/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.task;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" * Represents a task with a description.","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" * Constructs a ToDo object with the task description and deadline.","lastModifiedDate":"2023-09-01"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" * @param description Description of the task.","lastModifiedDate":"2023-09-01"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" public ToDo(String description) {","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" super(description);","lastModifiedDate":"2023-08-26"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" * Formats the string representation of the ToDo object to write to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the ToDo object to be written to the file.","lastModifiedDate":"2023-09-01"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" public String toFileString() {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" String type \u003d \"T\";","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" return type + \" | \" + (isDone() ? \"1\" : \"0\") + \" | \" + getDescription();","lastModifiedDate":"2023-09-01"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-01"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" * The string representation of ToDo object.","lastModifiedDate":"2023-09-01"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-01"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" * @return String representation of the ToDo object.","lastModifiedDate":"2023-09-01"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-01"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Override","lastModifiedDate":"2023-08-26"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public String toString() {","lastModifiedDate":"2023-08-26"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-26"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-26"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-26"}],"authorContributionMap":{"Angelyxx":37}},{"path":"src/main/java/duke/util/DateParser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.util;","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import java.time.DayOfWeek;","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import java.util.HashMap;","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import java.util.List;","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import java.util.Map;","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"/**","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" * Class to parse strings to either LocalDate or LocalDateTime Format","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":"public class DateParser {","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" private static final List\u003cDateTimeFormatter\u003e dateFormatters \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" private static final List\u003cDateTimeFormatter\u003e dateTimeFormatters \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" private static final List\u003cDateTimeFormatter\u003e timeFormatters \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" private static final LocalDate today \u003d LocalDate.now();","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" // Initialize date and date-time formatters","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" static {","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" dateFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"yyyy-MM-dd\u0027T\u0027HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"dd/MM/yyyy HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"MM/dd/yyyy HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" dateTimeFormatters.add(DateTimeFormatter.ofPattern(\"d/M/yyyy HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" timeFormatters.add(DateTimeFormatter.ofPattern(\"h[.mm]a\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" timeFormatters.add(DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" timeFormatters.add(DateTimeFormatter.ofPattern(\"HH:mm\"));","lastModifiedDate":"2023-09-13"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" * Parses a String to a LocalDate object.","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" * @param date String representation of a potential date.","lastModifiedDate":"2023-09-13"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDate object if the string can be parsed, null otherwise.","lastModifiedDate":"2023-09-13"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" public static LocalDate parseDate(String date) {","lastModifiedDate":"2023-09-13"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" for (DateTimeFormatter formatter : dateFormatters) {","lastModifiedDate":"2023-09-13"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" return LocalDate.parse(date, formatter);","lastModifiedDate":"2023-09-13"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-09-13"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" //returns null if it fails","lastModifiedDate":"2023-09-13"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" return parseNaturalDate(date);","lastModifiedDate":"2023-09-13"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" * Parses a String to a LocalDateTime object.","lastModifiedDate":"2023-09-13"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" * @param dateTime String representation of a potential date and time.","lastModifiedDate":"2023-09-13"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDateTime object if the string can be parsed, null otherwise.","lastModifiedDate":"2023-09-13"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" public static LocalDateTime parseDateTime(String dateTime) {","lastModifiedDate":"2023-09-13"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" for (DateTimeFormatter formatter : dateTimeFormatters) {","lastModifiedDate":"2023-09-13"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" return LocalDateTime.parse(dateTime.toUpperCase(), formatter);","lastModifiedDate":"2023-09-13"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-09-13"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" //returns null if it fails","lastModifiedDate":"2023-09-13"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":82,"author":{"gitId":"Angelyxx"},"content":" return parseNaturalDateTime(dateTime);","lastModifiedDate":"2023-09-13"},{"lineNumber":83,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":84,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":85,"author":{"gitId":"Angelyxx"},"content":" public static LocalTime parseTime(String time) {","lastModifiedDate":"2023-09-13"},{"lineNumber":86,"author":{"gitId":"Angelyxx"},"content":" for (DateTimeFormatter formatter : timeFormatters) {","lastModifiedDate":"2023-09-13"},{"lineNumber":87,"author":{"gitId":"Angelyxx"},"content":" try {","lastModifiedDate":"2023-09-13"},{"lineNumber":88,"author":{"gitId":"Angelyxx"},"content":" return LocalTime.parse(time, formatter);","lastModifiedDate":"2023-09-13"},{"lineNumber":89,"author":{"gitId":"Angelyxx"},"content":" } catch (DateTimeParseException ignored) {","lastModifiedDate":"2023-09-13"},{"lineNumber":90,"author":{"gitId":"Angelyxx"},"content":" // Ignore parsing errors and continue with the next formatter","lastModifiedDate":"2023-09-13"},{"lineNumber":91,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":92,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":93,"author":{"gitId":"Angelyxx"},"content":" return null; // Parsing failed with all formatters","lastModifiedDate":"2023-09-13"},{"lineNumber":94,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":95,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":96,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":97,"author":{"gitId":"Angelyxx"},"content":" * Parses a String as a natural language date, e.g., \"Mon\" for the next Monday.","lastModifiedDate":"2023-09-13"},{"lineNumber":98,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":99,"author":{"gitId":"Angelyxx"},"content":" * @param input String representation of a natural language date.","lastModifiedDate":"2023-09-13"},{"lineNumber":100,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDate object representing the parsed date or null if parsing fails.","lastModifiedDate":"2023-09-13"},{"lineNumber":101,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":102,"author":{"gitId":"Angelyxx"},"content":" private static LocalDate parseNaturalDate(String input) {","lastModifiedDate":"2023-09-13"},{"lineNumber":103,"author":{"gitId":"Angelyxx"},"content":" Pattern todayPattern \u003d Pattern.compile(\"\\\\b(today)\\\\b\", Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":104,"author":{"gitId":"Angelyxx"},"content":" Pattern tomorrowPattern \u003d Pattern.compile(\"\\\\b(tomorrow)\\\\b\", Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":105,"author":{"gitId":"Angelyxx"},"content":" Pattern dayOfWeekPattern \u003d Pattern.compile(","lastModifiedDate":"2023-09-13"},{"lineNumber":106,"author":{"gitId":"Angelyxx"},"content":" \"(\\\\bMon|Tue(s)?|Wed(s)|Wed(nes)?|Thu(rs)?|Fri|Sat(ur)?|Sun)(day)?\\\\b\", Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":107,"author":{"gitId":"Angelyxx"},"content":" Matcher todayMatcher \u003d todayPattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":108,"author":{"gitId":"Angelyxx"},"content":" if (todayMatcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":109,"author":{"gitId":"Angelyxx"},"content":" return today;","lastModifiedDate":"2023-09-13"},{"lineNumber":110,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":111,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":112,"author":{"gitId":"Angelyxx"},"content":" Matcher tomorrowMatcher \u003d tomorrowPattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":113,"author":{"gitId":"Angelyxx"},"content":" if (tomorrowMatcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":114,"author":{"gitId":"Angelyxx"},"content":" return today.plusDays(1);","lastModifiedDate":"2023-09-13"},{"lineNumber":115,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":116,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":117,"author":{"gitId":"Angelyxx"},"content":" Matcher dayOfWeekmatcher \u003d dayOfWeekPattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":118,"author":{"gitId":"Angelyxx"},"content":" if (dayOfWeekmatcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":119,"author":{"gitId":"Angelyxx"},"content":" //get instance that matches pattern","lastModifiedDate":"2023-09-13"},{"lineNumber":120,"author":{"gitId":"Angelyxx"},"content":" String dayOfWeekStr \u003d dayOfWeekmatcher.group(1).toLowerCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":121,"author":{"gitId":"Angelyxx"},"content":" DayOfWeek dayOfWeek \u003d getDayOfWeekFromAbbreviation(dayOfWeekStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":122,"author":{"gitId":"Angelyxx"},"content":" int daysUntilNext \u003d calculateNoOfDays(dayOfWeek);","lastModifiedDate":"2023-09-13"},{"lineNumber":123,"author":{"gitId":"Angelyxx"},"content":" return today.plusDays(daysUntilNext);","lastModifiedDate":"2023-09-13"},{"lineNumber":124,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":125,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":126,"author":{"gitId":"Angelyxx"},"content":" return null; // Return null if no natural language date match is found","lastModifiedDate":"2023-09-13"},{"lineNumber":127,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":128,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":129,"author":{"gitId":"Angelyxx"},"content":" /**","lastModifiedDate":"2023-09-13"},{"lineNumber":130,"author":{"gitId":"Angelyxx"},"content":" * Parses a String as a natural language date and time, e.g., \"Mon 4pm\".","lastModifiedDate":"2023-09-13"},{"lineNumber":131,"author":{"gitId":"Angelyxx"},"content":" *","lastModifiedDate":"2023-09-13"},{"lineNumber":132,"author":{"gitId":"Angelyxx"},"content":" * @param input String representation of a natural language date and time.","lastModifiedDate":"2023-09-13"},{"lineNumber":133,"author":{"gitId":"Angelyxx"},"content":" * @return A LocalDateTime object representing the parsed date and time or null if parsing fails.","lastModifiedDate":"2023-09-13"},{"lineNumber":134,"author":{"gitId":"Angelyxx"},"content":" */","lastModifiedDate":"2023-09-13"},{"lineNumber":135,"author":{"gitId":"Angelyxx"},"content":" public static LocalDateTime parseNaturalDateTime(String input) {","lastModifiedDate":"2023-09-13"},{"lineNumber":136,"author":{"gitId":"Angelyxx"},"content":" // Extract day of the week and time using regex","lastModifiedDate":"2023-09-13"},{"lineNumber":137,"author":{"gitId":"Angelyxx"},"content":" Pattern pattern \u003d Pattern.compile(","lastModifiedDate":"2023-09-13"},{"lineNumber":138,"author":{"gitId":"Angelyxx"},"content":" \"\\\\b(Today|Tomorrow|Mon|Tue(s)?|Wed(s)|Wed(nes)?|Thu(rs)?|Fri|Sat(ur)?|Sun)(day)?\\\\s+\\\\b\",","lastModifiedDate":"2023-09-13"},{"lineNumber":139,"author":{"gitId":"Angelyxx"},"content":" Pattern.CASE_INSENSITIVE);","lastModifiedDate":"2023-09-13"},{"lineNumber":140,"author":{"gitId":"Angelyxx"},"content":" Matcher matcher \u003d pattern.matcher(input);","lastModifiedDate":"2023-09-13"},{"lineNumber":141,"author":{"gitId":"Angelyxx"},"content":" if (matcher.find()) {","lastModifiedDate":"2023-09-13"},{"lineNumber":142,"author":{"gitId":"Angelyxx"},"content":" String naturalDateStr \u003d matcher.group(0).toLowerCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":143,"author":{"gitId":"Angelyxx"},"content":" int dayOfWeekStrLength \u003d naturalDateStr.length();","lastModifiedDate":"2023-09-13"},{"lineNumber":144,"author":{"gitId":"Angelyxx"},"content":" String potentialTimeStr \u003d input.substring(dayOfWeekStrLength).trim().toUpperCase();","lastModifiedDate":"2023-09-13"},{"lineNumber":145,"author":{"gitId":"Angelyxx"},"content":" LocalDate date \u003d parseNaturalDate(naturalDateStr.trim());","lastModifiedDate":"2023-09-13"},{"lineNumber":146,"author":{"gitId":"Angelyxx"},"content":" LocalTime time \u003d parseTime(potentialTimeStr);","lastModifiedDate":"2023-09-13"},{"lineNumber":147,"author":{"gitId":"Angelyxx"},"content":" if (date !\u003d null \u0026\u0026 time !\u003d null) {","lastModifiedDate":"2023-09-13"},{"lineNumber":148,"author":{"gitId":"Angelyxx"},"content":" LocalDateTime dateTime \u003d date.atTime(time);","lastModifiedDate":"2023-09-13"},{"lineNumber":149,"author":{"gitId":"Angelyxx"},"content":" return dateTime;","lastModifiedDate":"2023-09-13"},{"lineNumber":150,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":151,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":152,"author":{"gitId":"Angelyxx"},"content":" return null;","lastModifiedDate":"2023-09-13"},{"lineNumber":153,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":154,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":155,"author":{"gitId":"Angelyxx"},"content":" private static DayOfWeek getDayOfWeekFromAbbreviation(String abbreviation) {","lastModifiedDate":"2023-09-13"},{"lineNumber":156,"author":{"gitId":"Angelyxx"},"content":" //Map to store the mappings from abbreviations to DayOfWeek enum constants","lastModifiedDate":"2023-09-13"},{"lineNumber":157,"author":{"gitId":"Angelyxx"},"content":" Map\u003cString, DayOfWeek\u003e abbreviationMap \u003d new HashMap\u003c\u003e();","lastModifiedDate":"2023-09-13"},{"lineNumber":158,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"mon\", DayOfWeek.MONDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":159,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"tue\", DayOfWeek.TUESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":160,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"tues\", DayOfWeek.TUESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":161,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"wed\", DayOfWeek.WEDNESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":162,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"weds\", DayOfWeek.WEDNESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":163,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"wednes\", DayOfWeek.WEDNESDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":164,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"thu\", DayOfWeek.THURSDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":165,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"thur\", DayOfWeek.THURSDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":166,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"thurs\", DayOfWeek.THURSDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":167,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"fri\", DayOfWeek.FRIDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":168,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"sat\", DayOfWeek.SATURDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":169,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"satur\", DayOfWeek.SATURDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":170,"author":{"gitId":"Angelyxx"},"content":" abbreviationMap.put(\"sun\", DayOfWeek.SUNDAY);","lastModifiedDate":"2023-09-13"},{"lineNumber":171,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":172,"author":{"gitId":"Angelyxx"},"content":" return abbreviationMap.get(abbreviation.toLowerCase());","lastModifiedDate":"2023-09-13"},{"lineNumber":173,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":174,"author":{"gitId":"Angelyxx"},"content":" private static int calculateNoOfDays(DayOfWeek dayOfWeek) {","lastModifiedDate":"2023-09-13"},{"lineNumber":175,"author":{"gitId":"Angelyxx"},"content":" int daysUntilNext \u003d dayOfWeek.getValue() - today.getDayOfWeek().getValue();","lastModifiedDate":"2023-09-13"},{"lineNumber":176,"author":{"gitId":"Angelyxx"},"content":" if (daysUntilNext \u003c\u003d 0) { //check if weekday has passed","lastModifiedDate":"2023-09-13"},{"lineNumber":177,"author":{"gitId":"Angelyxx"},"content":" daysUntilNext +\u003d 7; // Move to the next week","lastModifiedDate":"2023-09-13"},{"lineNumber":178,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":179,"author":{"gitId":"Angelyxx"},"content":" return daysUntilNext;","lastModifiedDate":"2023-09-13"},{"lineNumber":180,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-13"},{"lineNumber":181,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":182,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":182}},{"path":"src/main/java/exception/DukeException.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package exception;","lastModifiedDate":"2023-09-01"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-01"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"public class DukeException extends Exception {","lastModifiedDate":"2023-09-01"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-09-01"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":" super(message);","lastModifiedDate":"2023-09-01"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-09-01"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-09-01"}],"authorContributionMap":{"Angelyxx":7}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" styleClass\u003d\"unique\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"50.0\" fitWidth\u003d\"50.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":17}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.image.Image?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"duke.main.MainWindow\" style\u003d\"-fx-background-color: #ffffff;\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\" AnchorPane.bottomAnchor\u003d\"1.0\" promptText\u003d\"Type a message\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" \u003cfx:define\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" \u003cImage fx:id\u003d\"btnImage\" url\u003d\"@/images/SendButton.png\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":" \u003c/fx:define\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" \u003cButton fx:id\u003d\"sendButton\" opacity\u003d\"0.5\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" \u003cgraphic\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" \u003cImageView image \u003d\"$btnImage\" fitHeight\u003d\"33.0\" fitWidth\u003d\"33.0\" layoutX\u003d\"362.0\" layoutY\u003d\"562.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\"\u003e\u003c/ImageView\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" \u003c/graphic\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" vbarPolicy\u003d\"AS_NEEDED\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" /\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-13"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-13"}],"authorContributionMap":{"Angelyxx":29}},{"path":"src/test/java/duke/main/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.command.Command;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeadlineCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.command.EventCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ToDoCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.command.DeleteCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import duke.command.MarkCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import duke.command.UnmarkCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ExitCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import duke.command.ListCommand;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertThrows;","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":"public class ParserTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" public void parseByeCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"bye\");","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof ExitCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" public void parseListCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"list\");","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof ListCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":" public void parseToDoCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"todo Buy groceries\");","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof ToDoCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" public void parseDeadlineCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"deadline Submit report /by 2023-09-15\");","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof DeadlineCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" public void parseEventCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"event Party /from 2023-09-20 1400 /to 2023-09-20 1800\");","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof EventCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" public void parseMarkCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"mark 2\");","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof MarkCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" public void parseUnmarkCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"unmark 3\");","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof UnmarkCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" public void parseDeleteCommandTest() throws DukeException {","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" Command command \u003d Parser.parse(\"delete 4\");","lastModifiedDate":"2023-08-31"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":" assertTrue(command instanceof DeleteCommand);","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" public void parseInvalidCommandTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" assertThrows(DukeException.class, () -\u003e Parser.parse(\"invalid command\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":71}},{"path":"src/test/java/duke/main/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.exception.DukeException;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import java.io.File;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":"public class StorageTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" public void loadTasksFromFileTest() throws DukeException, IOException {","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" // Prepare a temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" File tempFile \u003d File.createTempFile(\"test\", \".txt\");","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":" String tempFilePath \u003d tempFile.getAbsolutePath();","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" Storage storage \u003d new Storage(tempFilePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" // Create a sample task list","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e expectedTaskList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" expectedTaskList.add(new ToDo(\"Sample ToDo Task\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" expectedTaskList.add(new Deadline(\"Sample Deadline Task\", \"31/08/2023\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" expectedTaskList.add(new Event(\"Sample Event Task\",","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" \"31/08/2023 1600\",\"31/08/2023 1800\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" // Save the sample task list to the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" TaskList taskListToSave \u003d new TaskList(expectedTaskList);","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(taskListToSave);","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" // Load tasks from the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e loadedTaskList \u003d storage.loadTasksFromFile();","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" // Clean up the temporary file","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" tempFile.delete();","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" // Verify the loaded task list matches the expected task list","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":" assertEquals(expectedTaskList.size(), loadedTaskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" for (int i \u003d 0; i \u003c expectedTaskList.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" assertEquals(expectedTaskList.get(i).getDescription(), loadedTaskList.get(i).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" assertEquals(expectedTaskList.get(i).isDone(), loadedTaskList.get(i).isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" public void saveTasksToFileTest() throws DukeException, IOException {","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":" // Prepare a temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" File tempFile \u003d File.createTempFile(\"test\", \".txt\");","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" String tempFilePath \u003d tempFile.getAbsolutePath();","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" Storage storage \u003d new Storage(tempFilePath);","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" // Create a sample task list","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e taskListToSave \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" taskListToSave.add(new ToDo(\"Sample ToDo Task\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" taskListToSave.add(new Deadline(\"Sample Deadline Task\", \"31/08/2023\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" taskListToSave.add(new Event(\"Sample Event Task\",","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":" \"31/08/2023 1600\",\"31/08/2023 1800\"));","lastModifiedDate":"2023-08-31"},{"lineNumber":64,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":65,"author":{"gitId":"Angelyxx"},"content":" // Save the sample task list to the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":66,"author":{"gitId":"Angelyxx"},"content":" storage.saveTasksToFile(new TaskList(taskListToSave));","lastModifiedDate":"2023-08-31"},{"lineNumber":67,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":68,"author":{"gitId":"Angelyxx"},"content":" // Load tasks from the temporary test file","lastModifiedDate":"2023-08-31"},{"lineNumber":69,"author":{"gitId":"Angelyxx"},"content":" ArrayList\u003cTask\u003e loadedTaskList \u003d storage.loadTasksFromFile();","lastModifiedDate":"2023-08-31"},{"lineNumber":70,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":71,"author":{"gitId":"Angelyxx"},"content":" // Clean up the temporary file","lastModifiedDate":"2023-08-31"},{"lineNumber":72,"author":{"gitId":"Angelyxx"},"content":" tempFile.delete();","lastModifiedDate":"2023-08-31"},{"lineNumber":73,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":74,"author":{"gitId":"Angelyxx"},"content":" // Verify the loaded task list matches the originally saved task list","lastModifiedDate":"2023-08-31"},{"lineNumber":75,"author":{"gitId":"Angelyxx"},"content":" assertEquals(taskListToSave.size(), loadedTaskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":76,"author":{"gitId":"Angelyxx"},"content":" for (int i \u003d 0; i \u003c taskListToSave.size(); i++) {","lastModifiedDate":"2023-08-31"},{"lineNumber":77,"author":{"gitId":"Angelyxx"},"content":" assertEquals(taskListToSave.get(i).getDescription(), loadedTaskList.get(i).getDescription());","lastModifiedDate":"2023-08-31"},{"lineNumber":78,"author":{"gitId":"Angelyxx"},"content":" assertEquals(taskListToSave.get(i).isDone(), loadedTaskList.get(i).isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":79,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":80,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":81,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":81}},{"path":"src/test/java/duke/main/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Angelyxx"},"content":"package duke.main;","lastModifiedDate":"2023-08-31"},{"lineNumber":2,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":3,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Task;","lastModifiedDate":"2023-08-31"},{"lineNumber":4,"author":{"gitId":"Angelyxx"},"content":"import duke.task.ToDo;","lastModifiedDate":"2023-08-31"},{"lineNumber":5,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Deadline;","lastModifiedDate":"2023-08-31"},{"lineNumber":6,"author":{"gitId":"Angelyxx"},"content":"import duke.task.Event;","lastModifiedDate":"2023-08-31"},{"lineNumber":7,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":8,"author":{"gitId":"Angelyxx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-31"},{"lineNumber":9,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-31"},{"lineNumber":10,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-08-31"},{"lineNumber":11,"author":{"gitId":"Angelyxx"},"content":"import static org.junit.jupiter.api.Assertions.assertFalse;","lastModifiedDate":"2023-08-31"},{"lineNumber":12,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":13,"author":{"gitId":"Angelyxx"},"content":"public class TaskListTest {","lastModifiedDate":"2023-08-31"},{"lineNumber":14,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":15,"author":{"gitId":"Angelyxx"},"content":" public void addTaskTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":16,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":17,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":18,"author":{"gitId":"Angelyxx"},"content":" //create tasks","lastModifiedDate":"2023-08-31"},{"lineNumber":19,"author":{"gitId":"Angelyxx"},"content":" Task toDo \u003d new ToDo(\"Buy groceries\");","lastModifiedDate":"2023-08-31"},{"lineNumber":20,"author":{"gitId":"Angelyxx"},"content":" Task deadline \u003d new Deadline(\"Sample Deadline Task\", \"31/08/2023\");","lastModifiedDate":"2023-08-31"},{"lineNumber":21,"author":{"gitId":"Angelyxx"},"content":" Task event \u003d new Event(\"Sample Event Task\",","lastModifiedDate":"2023-08-31"},{"lineNumber":22,"author":{"gitId":"Angelyxx"},"content":" \"31/08/2023 1600\",\"31/08/2023 1800\");","lastModifiedDate":"2023-08-31"},{"lineNumber":23,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":24,"author":{"gitId":"Angelyxx"},"content":" taskList.add(toDo);","lastModifiedDate":"2023-08-31"},{"lineNumber":25,"author":{"gitId":"Angelyxx"},"content":" taskList.add(deadline);","lastModifiedDate":"2023-08-31"},{"lineNumber":26,"author":{"gitId":"Angelyxx"},"content":" taskList.add(event);","lastModifiedDate":"2023-08-31"},{"lineNumber":27,"author":{"gitId":"Angelyxx"},"content":" assertEquals(3, taskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":28,"author":{"gitId":"Angelyxx"},"content":" assertEquals(toDo, taskList.get(0));","lastModifiedDate":"2023-08-31"},{"lineNumber":29,"author":{"gitId":"Angelyxx"},"content":" assertEquals(deadline, taskList.get(1));","lastModifiedDate":"2023-08-31"},{"lineNumber":30,"author":{"gitId":"Angelyxx"},"content":" assertEquals(event, taskList.get(2));","lastModifiedDate":"2023-08-31"},{"lineNumber":31,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":32,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":33,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":34,"author":{"gitId":"Angelyxx"},"content":" public void deleteTaskTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":35,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":36,"author":{"gitId":"Angelyxx"},"content":" Task task1 \u003d new ToDo(\"Complete assignment\");","lastModifiedDate":"2023-08-31"},{"lineNumber":37,"author":{"gitId":"Angelyxx"},"content":" Task task2 \u003d new ToDo(\"Read a book\");","lastModifiedDate":"2023-08-31"},{"lineNumber":38,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task1);","lastModifiedDate":"2023-08-31"},{"lineNumber":39,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task2);","lastModifiedDate":"2023-08-31"},{"lineNumber":40,"author":{"gitId":"Angelyxx"},"content":" taskList.delete(0);","lastModifiedDate":"2023-08-31"},{"lineNumber":41,"author":{"gitId":"Angelyxx"},"content":" assertEquals(1, taskList.size());","lastModifiedDate":"2023-08-31"},{"lineNumber":42,"author":{"gitId":"Angelyxx"},"content":" assertEquals(task2, taskList.get(0));","lastModifiedDate":"2023-08-31"},{"lineNumber":43,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":44,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":45,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":46,"author":{"gitId":"Angelyxx"},"content":" public void markTaskDoneTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":47,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":48,"author":{"gitId":"Angelyxx"},"content":" Task task \u003d new ToDo(\"Go for a run\");","lastModifiedDate":"2023-08-31"},{"lineNumber":49,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task);","lastModifiedDate":"2023-08-31"},{"lineNumber":50,"author":{"gitId":"Angelyxx"},"content":" taskList.markDone(0);","lastModifiedDate":"2023-08-31"},{"lineNumber":51,"author":{"gitId":"Angelyxx"},"content":" assertTrue(task.isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":52,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":53,"author":{"gitId":"Angelyxx"},"content":"","lastModifiedDate":"2023-08-31"},{"lineNumber":54,"author":{"gitId":"Angelyxx"},"content":" @Test","lastModifiedDate":"2023-08-31"},{"lineNumber":55,"author":{"gitId":"Angelyxx"},"content":" public void unmarkTaskNotDoneTest() {","lastModifiedDate":"2023-08-31"},{"lineNumber":56,"author":{"gitId":"Angelyxx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-31"},{"lineNumber":57,"author":{"gitId":"Angelyxx"},"content":" Task task \u003d new ToDo(\"Write code\");","lastModifiedDate":"2023-08-31"},{"lineNumber":58,"author":{"gitId":"Angelyxx"},"content":" task.markDone(); // Mark the task as done initially","lastModifiedDate":"2023-08-31"},{"lineNumber":59,"author":{"gitId":"Angelyxx"},"content":" taskList.add(task);","lastModifiedDate":"2023-08-31"},{"lineNumber":60,"author":{"gitId":"Angelyxx"},"content":" taskList.markNotDone(0);","lastModifiedDate":"2023-08-31"},{"lineNumber":61,"author":{"gitId":"Angelyxx"},"content":" assertFalse(task.isDone());","lastModifiedDate":"2023-09-01"},{"lineNumber":62,"author":{"gitId":"Angelyxx"},"content":" }","lastModifiedDate":"2023-08-31"},{"lineNumber":63,"author":{"gitId":"Angelyxx"},"content":"}","lastModifiedDate":"2023-08-31"}],"authorContributionMap":{"Angelyxx":63}}] diff --git a/Angelyxx_ip_master/commits.json b/Angelyxx_ip_master/commits.json index 526fa985..20e6e749 100644 --- a/Angelyxx_ip_master/commits.json +++ b/Angelyxx_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"Angelyxx":[{"date":"2023-08-25","commitResults":[{"hash":"d9ed55fcb492a1611dafa452a0d3848248dca85f","isMergeCommit":false,"messageTitle":"Level-2","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":30,"deletions":1}}}]},{"date":"2023-08-26","commitResults":[{"hash":"991e7cc8a052668976d9f46c1071523e22d1565d","isMergeCommit":false,"messageTitle":"Level-3","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":5}}},{"hash":"71660de8c4a794069dd4a94c5a9a7c3dd8c78485","isMergeCommit":false,"messageTitle":"Level-4","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":90,"deletions":11}}},{"hash":"814a57986ab9f3dd5b39d00bf5c8c85a0aa2acdd","isMergeCommit":false,"messageTitle":"Level-5","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":110,"deletions":46}}},{"hash":"fe2cf03da54a6e5aa12b1ad441cb497d244a053d","isMergeCommit":false,"messageTitle":"Level-6","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":2}}}]},{"date":"2023-08-29","commitResults":[{"hash":"b3e783fa53bb8fabd94a5d1d7e3e6700055075dd","isMergeCommit":false,"messageTitle":"Add classes to packages","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":27,"deletions":17}}}]},{"date":"2023-08-30","commitResults":[{"hash":"ff0b12fcd36f8c7078a738b2659b3e29a67299a8","isMergeCommit":false,"messageTitle":"complete level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"java":{"insertions":104,"deletions":0}}},{"hash":"c4abb3cc2be855b1c561ee553093893cfac2bcf0","isMergeCommit":false,"messageTitle":"allow duke to read date/dateTime object for deadline","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":113,"deletions":27}}},{"hash":"f448a58d123f061f1a4e33f24ef632745950cc67","isMergeCommit":false,"messageTitle":"allow datetime objects for event class","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"java":{"insertions":79,"deletions":21}}}]},{"date":"2023-08-31","commitResults":[{"hash":"30a723dd5d9e11dd63d42f07ffcf89187f16ca3a","isMergeCommit":false,"messageTitle":"A-MoreOOP","messageBody":"","tags":["A-Packages","A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":582,"deletions":29}}},{"hash":"d6eb3665b1d59c9fa74c6b7239e12e6ed056b356","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into add-gradle-support","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"819c1c8f612e5e736e479c9364fa41dc3afd4b29","isMergeCommit":false,"messageTitle":"remove duplicate files","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":0,"deletions":240}}},{"hash":"f51c78a8dde7f0d4b0a26cfa17dc7c170893892f","isMergeCommit":false,"messageTitle":"Add JUnit Tests for ParserTest, StorageTest, TaskListTest","messageBody":"","tags":["Level-9","A-JavaDoc","A-Jar","A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":225,"deletions":23}}}]},{"date":"2023-09-01","commitResults":[{"hash":"a109990c80bcdfd48bc6efeaadabf1d280a578b5","isMergeCommit":false,"messageTitle":"Added JavaDocs to all classes","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":3},"java":{"insertions":466,"deletions":12}}},{"hash":"401f8513c890b21808408e7232a7220366c42f0c","isMergeCommit":false,"messageTitle":"Edit code to follow coding conventions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":65,"deletions":65}}},{"hash":"b3e15c74c0690bc9d2142e2a900996b656ddc13a","isMergeCommit":false,"messageTitle":"Complete find command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":72,"deletions":13}}},{"hash":"4d6562f9e5432c8d40dfa765c5f191b5e2a7489b","isMergeCommit":false,"messageTitle":"Add DukeException class","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":0}}},{"hash":"d90719839729f68260e78cb2ced2a6ca2d0f91aa","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/A-JavaDoc\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"2e6a844dcae2c39c46f63f5b8457ea39c978a79d","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/A-CodingStandard\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/main/Parser.java\n#\tsrc/main/java/duke/main/Storage.java\n#\tsrc/main/java/duke/main/TaskList.java\n#\tsrc/main/java/duke/main/Ui.java\n#\tsrc/main/java/duke/task/Task.java\n","fileTypesAndContributionMap":{}},{"hash":"7512f1b0223da727784590d7f437d84716672a4e","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/Level-9\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/command/ListCommand.java\n#\tsrc/main/java/duke/main/Parser.java\n#\tsrc/main/java/duke/main/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"9fec172b02dfaa769fceee8c1a410917bd596163","isMergeCommit":false,"messageTitle":"Fix TaskList typo error","messageBody":"","tags":["Level-10","A-CheckStyle"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-13","commitResults":[{"hash":"82fa592802ef651bdb47cfed8d722542e25024d9","isMergeCommit":false,"messageTitle":"add GUI to Duke","messageBody":"","tags":["A-Assertions"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"fxml":{"insertions":46,"deletions":0},"java":{"insertions":259,"deletions":126}}},{"hash":"038e15c2cccb9fdcf8688c93d2dc183bd4d9406a","isMergeCommit":false,"messageTitle":"add assertions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":10}}},{"hash":"82bb846c1baed4a5a8bd608556c29d9331a26237","isMergeCommit":true,"messageTitle":"Merge pull request #1 from Angelyxx/A-Assertions","messageBody":"add assertions","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{}},{"hash":"786e8fb6e563502e18a881df9a74bd1fb39373b7","isMergeCommit":false,"messageTitle":"Improve code quality by following java coding conventions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":54,"deletions":42}}},{"hash":"e5fc2dcdcbcecefb45287d5291ac911494cd1037","isMergeCommit":false,"messageTitle":"Debug validate methods for todo, deadline and event commands","messageBody":"Previous implementation did not allow for users to include the words \"todo\", \"deadline\" and \"event\" in their description as method used to replace those words for their respective commands.\n\nAdjusting the validation to allow for those words to be included in the description results in better code quality and flexibility.\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":58}}},{"hash":"5d3adf76d7af01627fd5b181c227830b9aeda30d","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Angelyxx/A-CodeQuality","messageBody":"A-code quality","tags":["BCD-Extension"],"fileTypesAndContributionMap":{}},{"hash":"3d982d7eb0e4e2e8c827d53cfb86cdc08a6c08d8","isMergeCommit":false,"messageTitle":"Allow for more natural formats of date inputs","messageBody":"This will allow for users to be more flexible in their datetime inputs for their deadline and todo tasks.\n\nLet\u0027s put all date and time parsing methods and dateTime formatters into the dateParser class.\n\nHaving a dateParser utility class allows us to use its methods across different classes, for example date parsing can be done in both Event and Deadline classes.\n","tags":["C-NaturalDates"],"fileTypesAndContributionMap":{"java":{"insertions":205,"deletions":133}}},{"hash":"1ed0d08568798c2b3f476f3cf92666ea1b0af3a6","isMergeCommit":true,"messageTitle":"Merge pull request #3 from Angelyxx/BCD-Extension","messageBody":"Allow for more natural formats of date inputs","fileTypesAndContributionMap":{}}]},{"date":"2023-09-21","commitResults":[{"hash":"cd892d75a4d4b50973193e89e44850d5bbf203d5","isMergeCommit":false,"messageTitle":"Clean up code","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":7}}},{"hash":"a845ce5fc4685ff94a3794804cda4a9712944950","isMergeCommit":false,"messageTitle":"debugged validation of find command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":4}}},{"hash":"70dda3641a93b81dad61d9c3bbbad1c1f6f5a235","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":94,"deletions":10}}},{"hash":"4ce1d690d121ce3e37bc9f1ea4d653017aac2ddd","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":2,"deletions":2}}},{"hash":"20ce3dfd27e68203ee3c60de03c7f4c393d43ac3","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":3,"deletions":2}}},{"hash":"65f9ac0d6446f7cbcb3de7cfcee2c4ae7a6a714a","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"22d8c1e4bda766d97c28a734c7d2097084f626a6","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"0c590967cc3f123b911d81b262a25cc058c92b05","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"3d58f22b3457e3dbc393ca73d075d06babb23617","isMergeCommit":false,"messageTitle":"Edit parser commands","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}}]}]},"authorFileTypeContributionMap":{"Angelyxx":{"java":1773,"md":95,"fxml":46,"sh":0,"bat":0,"gradle":17,"txt":0}},"authorContributionVariance":{"Angelyxx":74855.88},"authorDisplayNameMap":{"Angelyxx":"CS2103-F13-1 ANGE..XUAN"}} +{"authorDailyContributionsMap":{"Angelyxx":[{"date":"2023-08-25","commitResults":[{"hash":"d9ed55fcb492a1611dafa452a0d3848248dca85f","isMergeCommit":false,"messageTitle":"Level-2","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":30,"deletions":1}}}]},{"date":"2023-08-26","commitResults":[{"hash":"991e7cc8a052668976d9f46c1071523e22d1565d","isMergeCommit":false,"messageTitle":"Level-3","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":61,"deletions":5}}},{"hash":"71660de8c4a794069dd4a94c5a9a7c3dd8c78485","isMergeCommit":false,"messageTitle":"Level-4","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":90,"deletions":11}}},{"hash":"814a57986ab9f3dd5b39d00bf5c8c85a0aa2acdd","isMergeCommit":false,"messageTitle":"Level-5","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":110,"deletions":46}}},{"hash":"fe2cf03da54a6e5aa12b1ad441cb497d244a053d","isMergeCommit":false,"messageTitle":"Level-6","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":2}}}]},{"date":"2023-08-29","commitResults":[{"hash":"b3e783fa53bb8fabd94a5d1d7e3e6700055075dd","isMergeCommit":false,"messageTitle":"Add classes to packages","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":27,"deletions":17}}}]},{"date":"2023-08-30","commitResults":[{"hash":"ff0b12fcd36f8c7078a738b2659b3e29a67299a8","isMergeCommit":false,"messageTitle":"complete level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"java":{"insertions":104,"deletions":0}}},{"hash":"c4abb3cc2be855b1c561ee553093893cfac2bcf0","isMergeCommit":false,"messageTitle":"allow duke to read date/dateTime object for deadline","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":113,"deletions":27}}},{"hash":"f448a58d123f061f1a4e33f24ef632745950cc67","isMergeCommit":false,"messageTitle":"allow datetime objects for event class","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"java":{"insertions":79,"deletions":21}}}]},{"date":"2023-08-31","commitResults":[{"hash":"30a723dd5d9e11dd63d42f07ffcf89187f16ca3a","isMergeCommit":false,"messageTitle":"A-MoreOOP","messageBody":"","tags":["A-Packages","A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":582,"deletions":29}}},{"hash":"d6eb3665b1d59c9fa74c6b7239e12e6ed056b356","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into add-gradle-support","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"819c1c8f612e5e736e479c9364fa41dc3afd4b29","isMergeCommit":false,"messageTitle":"remove duplicate files","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":0,"deletions":240}}},{"hash":"f51c78a8dde7f0d4b0a26cfa17dc7c170893892f","isMergeCommit":false,"messageTitle":"Add JUnit Tests for ParserTest, StorageTest, TaskListTest","messageBody":"","tags":["Level-9","A-JavaDoc","A-Jar","A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":225,"deletions":23}}}]},{"date":"2023-09-01","commitResults":[{"hash":"a109990c80bcdfd48bc6efeaadabf1d280a578b5","isMergeCommit":false,"messageTitle":"Added JavaDocs to all classes","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":3},"java":{"insertions":466,"deletions":12}}},{"hash":"401f8513c890b21808408e7232a7220366c42f0c","isMergeCommit":false,"messageTitle":"Edit code to follow coding conventions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":65,"deletions":65}}},{"hash":"b3e15c74c0690bc9d2142e2a900996b656ddc13a","isMergeCommit":false,"messageTitle":"Complete find command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":72,"deletions":13}}},{"hash":"4d6562f9e5432c8d40dfa765c5f191b5e2a7489b","isMergeCommit":false,"messageTitle":"Add DukeException class","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":0}}},{"hash":"d90719839729f68260e78cb2ced2a6ca2d0f91aa","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/A-JavaDoc\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"2e6a844dcae2c39c46f63f5b8457ea39c978a79d","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/A-CodingStandard\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/main/Parser.java\n#\tsrc/main/java/duke/main/Storage.java\n#\tsrc/main/java/duke/main/TaskList.java\n#\tsrc/main/java/duke/main/Ui.java\n#\tsrc/main/java/duke/task/Task.java\n","fileTypesAndContributionMap":{}},{"hash":"7512f1b0223da727784590d7f437d84716672a4e","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/Level-9\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/command/ListCommand.java\n#\tsrc/main/java/duke/main/Parser.java\n#\tsrc/main/java/duke/main/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"9fec172b02dfaa769fceee8c1a410917bd596163","isMergeCommit":false,"messageTitle":"Fix TaskList typo error","messageBody":"","tags":["Level-10","A-CheckStyle"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-13","commitResults":[{"hash":"82fa592802ef651bdb47cfed8d722542e25024d9","isMergeCommit":false,"messageTitle":"add GUI to Duke","messageBody":"","tags":["A-Assertions"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"fxml":{"insertions":46,"deletions":0},"java":{"insertions":259,"deletions":126}}},{"hash":"038e15c2cccb9fdcf8688c93d2dc183bd4d9406a","isMergeCommit":false,"messageTitle":"add assertions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":15,"deletions":10}}},{"hash":"82bb846c1baed4a5a8bd608556c29d9331a26237","isMergeCommit":true,"messageTitle":"Merge pull request #1 from Angelyxx/A-Assertions","messageBody":"add assertions","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{}},{"hash":"786e8fb6e563502e18a881df9a74bd1fb39373b7","isMergeCommit":false,"messageTitle":"Improve code quality by following java coding conventions","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":54,"deletions":42}}},{"hash":"e5fc2dcdcbcecefb45287d5291ac911494cd1037","isMergeCommit":false,"messageTitle":"Debug validate methods for todo, deadline and event commands","messageBody":"Previous implementation did not allow for users to include the words \"todo\", \"deadline\" and \"event\" in their description as method used to replace those words for their respective commands.\n\nAdjusting the validation to allow for those words to be included in the description results in better code quality and flexibility.\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":63,"deletions":58}}},{"hash":"5d3adf76d7af01627fd5b181c227830b9aeda30d","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Angelyxx/A-CodeQuality","messageBody":"A-code quality","tags":["BCD-Extension"],"fileTypesAndContributionMap":{}},{"hash":"3d982d7eb0e4e2e8c827d53cfb86cdc08a6c08d8","isMergeCommit":false,"messageTitle":"Allow for more natural formats of date inputs","messageBody":"This will allow for users to be more flexible in their datetime inputs for their deadline and todo tasks.\n\nLet\u0027s put all date and time parsing methods and dateTime formatters into the dateParser class.\n\nHaving a dateParser utility class allows us to use its methods across different classes, for example date parsing can be done in both Event and Deadline classes.\n","tags":["C-NaturalDates"],"fileTypesAndContributionMap":{"java":{"insertions":205,"deletions":133}}},{"hash":"1ed0d08568798c2b3f476f3cf92666ea1b0af3a6","isMergeCommit":true,"messageTitle":"Merge pull request #3 from Angelyxx/BCD-Extension","messageBody":"Allow for more natural formats of date inputs","fileTypesAndContributionMap":{}}]},{"date":"2023-09-21","commitResults":[{"hash":"cd892d75a4d4b50973193e89e44850d5bbf203d5","isMergeCommit":false,"messageTitle":"Clean up code","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":7}}},{"hash":"a845ce5fc4685ff94a3794804cda4a9712944950","isMergeCommit":false,"messageTitle":"debugged validation of find command","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":4}}},{"hash":"70dda3641a93b81dad61d9c3bbbad1c1f6f5a235","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":94,"deletions":10}}},{"hash":"4ce1d690d121ce3e37bc9f1ea4d653017aac2ddd","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":2,"deletions":2}}},{"hash":"20ce3dfd27e68203ee3c60de03c7f4c393d43ac3","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":3,"deletions":2}}},{"hash":"65f9ac0d6446f7cbcb3de7cfcee2c4ae7a6a714a","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"22d8c1e4bda766d97c28a734c7d2097084f626a6","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"0c590967cc3f123b911d81b262a25cc058c92b05","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"3d58f22b3457e3dbc393ca73d075d06babb23617","isMergeCommit":false,"messageTitle":"Edit parser commands","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":2,"deletions":2}}}]},{"date":"2023-09-26","commitResults":[{"hash":"b2e73bcbc79a56725ab3fad01504ffe2008374ed","isMergeCommit":false,"messageTitle":"debug gradle file to pass smoke test","messageBody":"","tags":["A-Release-old"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":1,"deletions":1}}}]}]},"authorFileTypeContributionMap":{"Angelyxx":{"java":1773,"md":95,"fxml":46,"sh":0,"bat":0,"gradle":17,"txt":0}},"authorContributionVariance":{"Angelyxx":66721.586},"authorDisplayNameMap":{"Angelyxx":"CS2103-F13-1 ANGE..XUAN"}} diff --git a/Chen-Kuei_ip_master/authorship.json b/Chen-Kuei_ip_master/authorship.json index 7aca817a..9afdbd0f 100644 --- a/Chen-Kuei_ip_master/authorship.json +++ b/Chen-Kuei_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"# duke.Duke project template","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":11,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":12,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":15,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"3. After that, locate the `src/main/java/duke.Duke.java` file, right-click it, and choose `Run duke.Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Chen-Kuei":2,"-":22}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"mainClassName \u003d \u0027duke.Launcher\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"shadowJar {","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" archiveFileName \u003d \u0027BiuBiu.jar\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"checkstyle {","lastModifiedDate":"2023-09-13"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-13"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":22,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":24,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"//application {","lastModifiedDate":"2023-09-23"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":"// mainClass.set(\"duke.Duke\")","lastModifiedDate":"2023-09-23"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":"//}","lastModifiedDate":"2023-09-23"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":"//shadowJar {","lastModifiedDate":"2023-09-23"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":"// archiveBaseName \u003d \"duke\"","lastModifiedDate":"2023-09-23"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":"// archiveClassifier \u003d null","lastModifiedDate":"2023-09-23"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":"// dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-09-23"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":"//}","lastModifiedDate":"2023-09-23"},{"lineNumber":65,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":66,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":67,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":68,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Chen-Kuei":34,"-":34}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"# BiuBiu","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"\u003e meooow :eyes: :heart_on_fire:","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"### BiuBiu is here to help you remember your schedule! It\u0027s:","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" - text-based","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" - easy to learn","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" - ~~fast~~ **SUPER SUPER FAST** to use","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"### Features:","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"- [x] Memorise tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"- [x] Update tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"- [ ] Reminders (coming soon!)","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"### `Keyword` Reference:","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"- `todo \u003ctask_descr\u003e`: add a Todo task","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" eg: `todo get a cup of coffee`","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"- `deadline \u003ctask_descr\u003e /by \u003ctime\u003e`: add a Deadline task(time format eg: 2023-09-21)","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" eg: `deadline get a haircut /by 2023-09-22`","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"- `event \u003ctask_descr\u003e /from \u003cstart_time /to \u003cend_time\u003e\u003e`: add an Event task(time format eg: 2023-09-21 1400)","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" eg: `event hang out with friends /from 2023-09-22 1400 /to 2023-09-22 2000`","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"- `mark \u003ctask_index\u003e`: mark the (task_index)th task as done(task_index is in integer!)","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" eg: `mark 1`","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":"- `unmark \u003ctask_index\u003e`: mark the (task_index)th task as not done yet","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" eg: `unmark 1`","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":"- `find \u003ctask_keyword\u003e`: find and list all the tasks that contain the keyword","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" eg: `find haircut`","lastModifiedDate":"2023-09-23"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"- `delete \u003ctask_index\u003e`: delete the (task_index)th task in the list","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" eg: `delete 1`","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":"- `update \u003ctask_index\u003e \u003c/parts\u003e \u003c/new_info\u003e`: update the certain part of the (task_index)th task (/parts: /decsr, /time, /start_time, /end_time)","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" eg: `update 3 /descr /hang out with doggy \u003c3`","lastModifiedDate":"2023-09-23"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":"- `list`: list out all the tasks in your TaskList.","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" eg: `list`","lastModifiedDate":"2023-09-23"},{"lineNumber":45,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":"### All you need to do is,","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":"1. download it from [here](https://github.com/Chen-Kuei/ip/tree/master).","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":"2. double-click it.","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":"3. add your tasks.","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":"4. let it manage your tasks for u :kissing_cat:","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":"*If you have the JAR file, you can simply type the command below at the folder containing the file:*","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"```ruby","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":"java -jar BiuBiu.jar","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"}],"authorContributionMap":{"Chen-Kuei":41,"-":15}},{"path":"docs/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"TODO | read","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"TODO | wash","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"Chen-Kuei":2}},{"path":"src/main/java/duke/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Locale;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"/**","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" * Represents a task with a deadline.","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" // protected String by;","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDate deadline;","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Deadline task.","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" * @param deadlineString The deadline date string in \"yyyy-MM-dd\" format.","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" public Deadline(String description, String deadlineString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" super(description);","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" this.deadline \u003d parseDeadline(deadlineString);","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the time of a Deadline.","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" * @param deadlineString A new time string.","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" public void updateTime(String deadlineString) {","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" this.deadline \u003d parseDeadline(deadlineString);","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" * Parses the deadline date from string.","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" * @param deadlineString The deadline date string in \"yyyy-MM-dd\" format.","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" * @return The parsed deadline date as a LocalDate object, or null if parsing fails.","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDate parseDeadline(String deadlineString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineString.isEmpty()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" return LocalDate.parse(deadlineString, DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error parsing date: \" + deadlineString);","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" private String formatDeadline (LocalDate deadlineDate) {","lastModifiedDate":"2023-09-09"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineDate \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" return \"Invalid date.\";","lastModifiedDate":"2023-09-09"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"MMM dd yyyy\", Locale.ENGLISH);","lastModifiedDate":"2023-09-09"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" return deadlineDate.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" private String saveFormatDeadline (LocalDate deadlineDate) {","lastModifiedDate":"2023-09-09"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineDate \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" return \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd\");","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" return deadlineDate.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task for saving.","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":" * @return The formatted string representation of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-08"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" return \"DEADLINE | \" + super.toDataString() + \" | \" + saveFormatDeadline(deadline);","lastModifiedDate":"2023-09-09"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task for display.","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" * @return The formatted string representation fo the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" return \"[D]\" + super.toString() + \" (by: \" + formatDeadline(deadline) + \")\";","lastModifiedDate":"2023-09-09"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":90}},{"path":"src/main/java/duke/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" private Label dialog;","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-11"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-11"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" private void flip() {","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" db.flip();","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" return db;","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":56}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"public class Duke extends Application {","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" private static final String DATA_FILE_PATH \u003d \"./docs/duke.txt\";","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" final private static TaskList tasks \u003d new TaskList();","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" final private static Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" final private static Storage storage \u003d new Storage(DATA_FILE_PATH);","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-11"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" final private Image user \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" final private Image biubiu \u003d new Image(this.getClass().getResourceAsStream(\"/images/BiuBiu.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" * The main entry point of the Duke program.","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" * @param args Command-line arguments (not used).","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" public static void main (String[] args) {","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" boolean isExit \u003d false;","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" while(!isExit) {","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" String userCommand \u003d ui.readCommand();","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" isExit \u003d ui.handleCommand(userCommand, tasks, storage).equals(ui.showExit());","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" public void start (Stage stage) {","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" // Step 1","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" Button sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-23"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" Scene scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" stage.show();","lastModifiedDate":"2023-09-11"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" // Step 2","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" stage.setTitle(\"Duke\");","lastModifiedDate":"2023-09-11"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-11"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setPrefSize(385, 535);","lastModifiedDate":"2023-09-11"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-11"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-11"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-11"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-11"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setLeftAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" // Step 3","lastModifiedDate":"2023-09-11"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":" sendButton.setOnMouseClicked(event -\u003e {","lastModifiedDate":"2023-09-11"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":" handleUserInput();","lastModifiedDate":"2023-09-11"},{"lineNumber":92,"author":{"gitId":"Chen-Kuei"},"content":" });","lastModifiedDate":"2023-09-11"},{"lineNumber":93,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":94,"author":{"gitId":"Chen-Kuei"},"content":" userInput.setOnAction((event -\u003e {","lastModifiedDate":"2023-09-11"},{"lineNumber":95,"author":{"gitId":"Chen-Kuei"},"content":" handleUserInput();","lastModifiedDate":"2023-09-11"},{"lineNumber":96,"author":{"gitId":"Chen-Kuei"},"content":" }));","lastModifiedDate":"2023-09-11"},{"lineNumber":97,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":98,"author":{"gitId":"Chen-Kuei"},"content":" // Scroll down to the end automatically","lastModifiedDate":"2023-09-11"},{"lineNumber":99,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.heightProperty().addListener((observable -\u003e scrollPane.setVvalue(1.0)));","lastModifiedDate":"2023-09-11"},{"lineNumber":100,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":101,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":102,"author":{"gitId":"Chen-Kuei"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-11"},{"lineNumber":103,"author":{"gitId":"Chen-Kuei"},"content":" String userText \u003d userInput.getText();","lastModifiedDate":"2023-09-11"},{"lineNumber":104,"author":{"gitId":"Chen-Kuei"},"content":" String dukeText \u003d getResponse(userInput.getText());","lastModifiedDate":"2023-09-11"},{"lineNumber":105,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":106,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-11"},{"lineNumber":107,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getUserDialog(userText, user),","lastModifiedDate":"2023-09-11"},{"lineNumber":108,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getDukeDialog(dukeText, biubiu)","lastModifiedDate":"2023-09-11"},{"lineNumber":109,"author":{"gitId":"Chen-Kuei"},"content":" );","lastModifiedDate":"2023-09-11"},{"lineNumber":110,"author":{"gitId":"Chen-Kuei"},"content":" userInput.clear();","lastModifiedDate":"2023-09-11"},{"lineNumber":111,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":112,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":113,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":114,"author":{"gitId":"Chen-Kuei"},"content":" * Gets s response based on the user input.","lastModifiedDate":"2023-09-17"},{"lineNumber":115,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":116,"author":{"gitId":"Chen-Kuei"},"content":" * @param input The user input.","lastModifiedDate":"2023-09-17"},{"lineNumber":117,"author":{"gitId":"Chen-Kuei"},"content":" * @return A response generated based on the user input.","lastModifiedDate":"2023-09-17"},{"lineNumber":118,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":119,"author":{"gitId":"Chen-Kuei"},"content":" public String getResponse (String input) {","lastModifiedDate":"2023-09-17"},{"lineNumber":120,"author":{"gitId":"Chen-Kuei"},"content":" return ui.handleCommand(input, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":121,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":122,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":123,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":124,"author":{"gitId":"Chen-Kuei"},"content":" * Retrieves the current TaskList instance.","lastModifiedDate":"2023-09-23"},{"lineNumber":125,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":126,"author":{"gitId":"Chen-Kuei"},"content":" * @return The TaskList instance containing tasks.","lastModifiedDate":"2023-09-23"},{"lineNumber":127,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":128,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList getTaskList() {","lastModifiedDate":"2023-09-23"},{"lineNumber":129,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-23"},{"lineNumber":130,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":131,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":131}},{"path":"src/main/java/duke/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Locale;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"public class Event extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDateTime startTime;","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDateTime endTime;","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" * Initializes a new Event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" * @param startDateTimeString The start date and time of the event in the format of \"yyyy-MM-dd HHmm\".","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" * @param endDateTimeString The end date and time of the event in the format of \"yyyy-MM-dd HHmm\".","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" public Event(String description, String startDateTimeString, String endDateTimeString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" super(description);","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" this.startTime \u003d parseDateTime(startDateTimeString);","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" this.endTime \u003d parseDateTime(endDateTimeString);","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the start time of an Event.","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" * @param startDateTimeString A new start time string.","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" public void updateStartTime(String startDateTimeString) {","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" this.startTime \u003d parseDateTime(startDateTimeString);","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the end time of an Event.","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" * @param endDateTimeString A new end time string.","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" public void updateEndTime(String endDateTimeString) {","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" this.endTime \u003d parseDateTime(endDateTimeString);","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDateTime parseDateTime (String dateTimeString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" if (dateTimeString.isEmpty()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" return LocalDateTime.parse(dateTimeString, DateTimeFormatter.ofPattern(\"yyyy-MM-dd HHmm\"));","lastModifiedDate":"2023-09-17"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error parsing date and time: \" + dateTimeString);","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" private String formatDateTime (LocalDateTime dateTime) {","lastModifiedDate":"2023-09-09"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" if (dateTime \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" return \"Invalid Date and Time!\";","lastModifiedDate":"2023-09-09"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"MMM dd yyyy h:mm a\", Locale.ENGLISH);","lastModifiedDate":"2023-09-09"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" return dateTime.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" private String saveFormatDateTime (LocalDateTime dateTime) {","lastModifiedDate":"2023-09-09"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" if (dateTime \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" return \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd HHmm\");","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" return dateTime.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" * Converts the event task to a formatted string.","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" return \"EVENT | \" + super.toDataString() + \" | \" + saveFormatDateTime(startTime) + \" | \" + saveFormatDateTime(endTime);","lastModifiedDate":"2023-09-09"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" * Converts the event task to a string representation for displaying.","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-08"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" return \"[E]\" + super.toString() + \" (from: \" + formatDateTime(startTime) + \" to: \" + formatDateTime(endTime) + \")\";","lastModifiedDate":"2023-09-09"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":91}},{"path":"src/main/java/duke/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"public class Launcher {","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" public static void main (String[] args) {","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":9}},{"path":"src/main/java/duke/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"/**","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" final private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" TaskList tasks \u003d duke.getTaskList();","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" tasks.loadTasksFromFile(\"./docs/duke.txt\");","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-11"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" stage.setTitle(\"--BiuBiu--\");","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" stage.show();","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":36}},{"path":"src/main/java/duke/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"/**","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-11"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" private Label welcomeLabel;","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" private Duke duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" final private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" final private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/BiuBiu.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" public void initialize() {","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" String welcomeMessage \u003d \"Hi, I\u0027m BiuBiu.\\nI\u0027m ready to help u!\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" \"\\n(u can save your task as todo/deadline/event)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" \"(can mark/unmark/find/delete/list/update your tasks)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" \"(type these keyword to find out more!)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" \"type \u0027woof\u0027 for surprise\u003e\u003c\";","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.getChildren().add(DialogBox.getDukeDialog(welcomeMessage, dukeImage));","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-11"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" );","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" userInput.clear();","lastModifiedDate":"2023-09-11"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":61}},{"path":"src/main/java/duke/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"public class Parser {","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" * Parses a user command and creates a task object.","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand The user command.","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" * @return A Task object.","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" public static Task parse (String userCommand) {","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d new Task(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" String[] commandParts \u003d userCommand.split(\" \", 2);","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" String taskType \u003d commandParts[0].toLowerCase();","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" switch (taskType) {","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" case \"todo\":","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" task \u003d parseTodoCommand(commandParts);","lastModifiedDate":"2023-09-17"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" task \u003d parseDeadlineCommand(commandParts);","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" case \"event\":","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" task \u003d parseEventCommand(commandParts);","lastModifiedDate":"2023-09-17"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Sorry, I don\u0027t understand the command.\");","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" return task;","lastModifiedDate":"2023-09-17"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" private static Todo parseTodoCommand(String[] commandParts) {","lastModifiedDate":"2023-09-17"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" if (commandParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"What you want to do?\");","lastModifiedDate":"2023-09-17"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" return new Todo(commandParts[1]);","lastModifiedDate":"2023-09-17"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" private static Deadline parseDeadlineCommand(String[] commandParts) {","lastModifiedDate":"2023-09-17"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" if (commandParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Please describe your deadline:)\");","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" String[] deadlineParts \u003d commandParts[1].split(\" /by \");","lastModifiedDate":"2023-09-17"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Tell me what and when your deadline is!\");","lastModifiedDate":"2023-09-17"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return new Deadline(deadlineParts[0], deadlineParts[1]);","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" private static Event parseEventCommand(String[] commandParts) {","lastModifiedDate":"2023-09-17"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" if (commandParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Please describe your event.\");","lastModifiedDate":"2023-09-17"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" String[] eventParts \u003d commandParts[1].split(\" /from | /to \");","lastModifiedDate":"2023-09-17"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" if (eventParts.length \u003c 3) {","lastModifiedDate":"2023-09-17"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Tell me what your event is and when it starts/ends!\");","lastModifiedDate":"2023-09-17"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" return new Event(eventParts[0], eventParts[1], eventParts[2]);","lastModifiedDate":"2023-09-17"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":68}},{"path":"src/main/java/duke/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.File;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"public class Storage {","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" final private String filePath;","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Storage object.","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" * @param filePath The file path where the task data will be saved.","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" * Enum representing the task types.","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" public enum TaskType {","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" TODO, DEADLINE, EVENT","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" * Saves the tasks from the TaskList to the file path.","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The taskList containing tasks to be saved.","lastModifiedDate":"2023-09-09"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" public void saveTasks(TaskList tasks) {","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" try (BufferedWriter writer \u003d new BufferedWriter(new FileWriter(file))) {","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.getTask(i);","lastModifiedDate":"2023-09-09"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" writer.write(task.toDataString());","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" writer.newLine();","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error saving tasks.\");","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":46}},{"path":"src/main/java/duke/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"public class Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":" protected String description;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" protected boolean isDone;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Task object.","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" public Task(String description) {","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the description of Task.","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" * @param description A string of new description.","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" public void updateDescription(String description) {","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" * Marks the task as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" public void markAsDone() {","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" * Marks the tasks as not dome yet.","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" public void markAsNotDone() {","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task\u0027s description for data storage.","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" * @return The task\u0027s description.","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" return description;","lastModifiedDate":"2023-09-08"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" return (isDone ? \"[X] \" : \"[ ] \") + description;","lastModifiedDate":"2023-09-03"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":58}},{"path":"src/main/java/duke/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.List;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"public class TaskList {","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" private final List\u003cTask\u003e tasks;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs an empty TaskList.","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList() {","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" this.tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" * Adds a task to the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task to be added.","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" public void addTask (Task task) {","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" * Deletes a task from the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskIndex The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" public void deleteTask (int taskIndex) {","lastModifiedDate":"2023-09-09"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" if (taskIndex \u003e\u003d 0 \u0026\u0026 taskIndex \u003c tasks.size()) {","lastModifiedDate":"2023-09-09"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" tasks.remove(taskIndex);","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" * Gets the number of tasks in the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" * @return The number of tasks in the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" public int size() {","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" return tasks.size();","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" * Gets a task from the TaskList at the specified index.","lastModifiedDate":"2023-09-09"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" * @return The task at the specified index.","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" public Task getTask(int index) {","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return tasks.get(index);","lastModifiedDate":"2023-09-09"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" * Marks a task as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" public void markTaskAsDone(int index) {","lastModifiedDate":"2023-09-09"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.get(index);","lastModifiedDate":"2023-09-09"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" task.markAsDone();","lastModifiedDate":"2023-09-09"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" * Marks a task as not done.","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" public void markTaskAsNotDone(int index) {","lastModifiedDate":"2023-09-09"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.get(index);","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" task.markAsNotDone();","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" * Finds the tasks that match the keyword.","lastModifiedDate":"2023-09-09"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" * @param keyword The keywords used to search matching tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" * @return Tasks that match the keyword.","lastModifiedDate":"2023-09-09"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList findTasksByKeyword (String keyword) {","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" TaskList matchingTasks \u003d new TaskList();","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" if (task.description.toLowerCase().contains(keyword.toLowerCase())) {","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" matchingTasks.addTask(task);","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" return matchingTasks;","lastModifiedDate":"2023-09-09"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":92,"author":{"gitId":"Chen-Kuei"},"content":" * Loads tasks from a specified file path.","lastModifiedDate":"2023-09-23"},{"lineNumber":93,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":94,"author":{"gitId":"Chen-Kuei"},"content":" * @param filePath The path to the file from which tasks will be loaded.","lastModifiedDate":"2023-09-23"},{"lineNumber":95,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":96,"author":{"gitId":"Chen-Kuei"},"content":" public void loadTasksFromFile(String filePath) {","lastModifiedDate":"2023-09-23"},{"lineNumber":97,"author":{"gitId":"Chen-Kuei"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-23"},{"lineNumber":98,"author":{"gitId":"Chen-Kuei"},"content":" ui.loadTasks(filePath);","lastModifiedDate":"2023-09-23"},{"lineNumber":99,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":100,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":100}},{"path":"src/main/java/duke/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Todo task.","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the todo task.","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" public Todo(String description) {","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" super(description);","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the Todo task.","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the Todo task for the data storage.","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" return \"TODO | \" + super.toDataString();","lastModifiedDate":"2023-09-08"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the Todo task.","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the Todo task for display.","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":32}},{"path":"src/main/java/duke/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.BufferedReader;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.File;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.FileReader;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"public class Ui {","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" final private Scanner scanner;","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" final private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Ui object.","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" public Ui() {","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" scanner \u003d new Scanner(System.in);","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" * Reads a user command.","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" * @return The user\u0027s command.","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" public String readCommand() {","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" return scanner.nextLine();","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" * Loads tasks from the file path.","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" * @param filePath The file path.","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" * @return A TaskList containing the loaded tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList loadTasks(String filePath) {","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" TaskList tasks \u003d duke.getTaskList();","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Data file does not exist.\");","lastModifiedDate":"2023-09-17"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-17"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" try (BufferedReader reader \u003d new BufferedReader(new FileReader(file))) {","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" String line;","lastModifiedDate":"2023-09-09"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" String[] taskData \u003d line.split(\" \\\\| \");","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" if (taskData.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Skipping corrupted task data: \" + line);","lastModifiedDate":"2023-09-17"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" storeTasksToTaskList(taskData, tasks);","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-23"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error loading tasks from the file.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-23"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" public void storeTasksToTaskList(String[] taskData, TaskList tasks) {","lastModifiedDate":"2023-09-23"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" Storage.TaskType taskType \u003d Storage.TaskType.valueOf(taskData[0]);","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" String taskDescription \u003d taskData[1];","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" String taskTime1 \u003d (taskData.length \u003e 2) ? taskData[2] : \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" String taskTime2 \u003d (taskData.length \u003e 3) ? taskData[3] : \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" switch (taskType) {","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" case TODO:","lastModifiedDate":"2023-09-09"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(new Todo(taskDescription));","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" case DEADLINE:","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(new Deadline(taskDescription, taskTime1));","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" case EVENT:","lastModifiedDate":"2023-09-09"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(new Event(taskDescription, taskTime1, taskTime2));","lastModifiedDate":"2023-09-09"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-09"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Invalid task type: \" + taskType);","lastModifiedDate":"2023-09-09"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" * Handles user commands.","lastModifiedDate":"2023-09-09"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand The user\u0027s command.","lastModifiedDate":"2023-09-09"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The list of tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The storage object to save tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":" * @return True if the program should exit.","lastModifiedDate":"2023-09-09"},{"lineNumber":92,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":93,"author":{"gitId":"Chen-Kuei"},"content":" public String handleCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":94,"author":{"gitId":"Chen-Kuei"},"content":" String output;","lastModifiedDate":"2023-09-23"},{"lineNumber":95,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-09"},{"lineNumber":96,"author":{"gitId":"Chen-Kuei"},"content":" String[] parts \u003d userCommand.split(\" \", 2);","lastModifiedDate":"2023-09-09"},{"lineNumber":97,"author":{"gitId":"Chen-Kuei"},"content":" String commandType \u003d parts[0].toLowerCase();","lastModifiedDate":"2023-09-09"},{"lineNumber":98,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":99,"author":{"gitId":"Chen-Kuei"},"content":" switch (commandType) {","lastModifiedDate":"2023-09-09"},{"lineNumber":100,"author":{"gitId":"Chen-Kuei"},"content":" case \"bye\":","lastModifiedDate":"2023-09-09"},{"lineNumber":101,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleByeCommand(tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":102,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-17"},{"lineNumber":103,"author":{"gitId":"Chen-Kuei"},"content":" case \"list\":","lastModifiedDate":"2023-09-09"},{"lineNumber":104,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d showTaskList(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":105,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":106,"author":{"gitId":"Chen-Kuei"},"content":" case \"mark\":","lastModifiedDate":"2023-09-09"},{"lineNumber":107,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleMarkCommand(parts, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":108,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":109,"author":{"gitId":"Chen-Kuei"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-09"},{"lineNumber":110,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleUnmarkCommand(parts, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":111,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":112,"author":{"gitId":"Chen-Kuei"},"content":" case \"todo\":","lastModifiedDate":"2023-09-09"},{"lineNumber":113,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleTodoCommand(userCommand, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":114,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":115,"author":{"gitId":"Chen-Kuei"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-09"},{"lineNumber":116,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleDeadlineCommand(userCommand, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":117,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":118,"author":{"gitId":"Chen-Kuei"},"content":" case \"event\":","lastModifiedDate":"2023-09-09"},{"lineNumber":119,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleEventCommand(userCommand, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":120,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-17"},{"lineNumber":121,"author":{"gitId":"Chen-Kuei"},"content":" case \"delete\":","lastModifiedDate":"2023-09-17"},{"lineNumber":122,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleDeleteCommand(parts, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":123,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":124,"author":{"gitId":"Chen-Kuei"},"content":" case \"find\":","lastModifiedDate":"2023-09-17"},{"lineNumber":125,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleFindCommand(parts, tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":126,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-17"},{"lineNumber":127,"author":{"gitId":"Chen-Kuei"},"content":" case \"update\":","lastModifiedDate":"2023-09-20"},{"lineNumber":128,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleUpdateCommand(parts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":129,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":130,"author":{"gitId":"Chen-Kuei"},"content":" case \"woof\":","lastModifiedDate":"2023-09-20"},{"lineNumber":131,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d \"meow\";","lastModifiedDate":"2023-09-20"},{"lineNumber":132,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":133,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-17"},{"lineNumber":134,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d showError(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":135,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":136,"author":{"gitId":"Chen-Kuei"},"content":" } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-17"},{"lineNumber":137,"author":{"gitId":"Chen-Kuei"},"content":" return showError(\"I don\u0027t know this...\");","lastModifiedDate":"2023-09-20"},{"lineNumber":138,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":139,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":140,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":141,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":142,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":143,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027bye\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":144,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":145,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":146,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":147,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":148,"author":{"gitId":"Chen-Kuei"},"content":" public String handleByeCommand(TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":149,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":150,"author":{"gitId":"Chen-Kuei"},"content":" return showExit();","lastModifiedDate":"2023-09-17"},{"lineNumber":151,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":152,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":153,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":154,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":155,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027mark\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":156,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":157,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":158,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":159,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":160,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":161,"author":{"gitId":"Chen-Kuei"},"content":" public String handleMarkCommand(String[] parts, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":162,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":163,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: mark \u003cindex\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":164,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":165,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":166,"author":{"gitId":"Chen-Kuei"},"content":" int doneTaskIndex \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-17"},{"lineNumber":167,"author":{"gitId":"Chen-Kuei"},"content":" tasks.markTaskAsDone(doneTaskIndex);","lastModifiedDate":"2023-09-17"},{"lineNumber":168,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":169,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskMarkedAsDone(tasks.getTask(doneTaskIndex));","lastModifiedDate":"2023-09-17"},{"lineNumber":170,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":171,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":172,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":173,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027unmark\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":174,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":175,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":176,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":177,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":178,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":179,"author":{"gitId":"Chen-Kuei"},"content":" public String handleUnmarkCommand(String[] parts, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":180,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":181,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: unmark \u003cindex\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":182,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":183,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":184,"author":{"gitId":"Chen-Kuei"},"content":" int notDoneTaskIndex \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-17"},{"lineNumber":185,"author":{"gitId":"Chen-Kuei"},"content":" tasks.markTaskAsNotDone(notDoneTaskIndex);","lastModifiedDate":"2023-09-17"},{"lineNumber":186,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":187,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskMarkedAsNotDone(tasks.getTask(notDoneTaskIndex));","lastModifiedDate":"2023-09-17"},{"lineNumber":188,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":189,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":190,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":191,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027todo\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":192,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":193,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand A string representing user command.","lastModifiedDate":"2023-09-17"},{"lineNumber":194,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":195,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":196,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":197,"author":{"gitId":"Chen-Kuei"},"content":" public String handleTodoCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":198,"author":{"gitId":"Chen-Kuei"},"content":" Task newTask \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-09"},{"lineNumber":199,"author":{"gitId":"Chen-Kuei"},"content":" if (newTask \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":200,"author":{"gitId":"Chen-Kuei"},"content":" return \"What you want to do?? \\n(format: todo \u003ctask\u003e)\";","lastModifiedDate":"2023-09-20"},{"lineNumber":201,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":202,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(newTask);","lastModifiedDate":"2023-09-09"},{"lineNumber":203,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-09"},{"lineNumber":204,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskAdded(newTask, tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":205,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":206,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":207,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":208,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027deadline\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":209,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":210,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand A string representing user command.","lastModifiedDate":"2023-09-17"},{"lineNumber":211,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":212,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":213,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":214,"author":{"gitId":"Chen-Kuei"},"content":" public String handleDeadlineCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":215,"author":{"gitId":"Chen-Kuei"},"content":" Task newTask \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":216,"author":{"gitId":"Chen-Kuei"},"content":" if (newTask \u003d\u003d null) {","lastModifiedDate":"2023-09-17"},{"lineNumber":217,"author":{"gitId":"Chen-Kuei"},"content":" return \"Please describe your deadline! \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":218,"author":{"gitId":"Chen-Kuei"},"content":" \"(format: deadline \u003ctask\u003e /by \u003ctime\u003e) \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":219,"author":{"gitId":"Chen-Kuei"},"content":" \"(indicate your time like: 2023-05-20)\";","lastModifiedDate":"2023-09-20"},{"lineNumber":220,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":221,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(newTask);","lastModifiedDate":"2023-09-17"},{"lineNumber":222,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":223,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskAdded(newTask, tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":224,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":225,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":226,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":227,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027event\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":228,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":229,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand A string representing user command.","lastModifiedDate":"2023-09-17"},{"lineNumber":230,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":231,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":232,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":233,"author":{"gitId":"Chen-Kuei"},"content":" public String handleEventCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":234,"author":{"gitId":"Chen-Kuei"},"content":" Task newTask \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":235,"author":{"gitId":"Chen-Kuei"},"content":" if (newTask \u003d\u003d null) {","lastModifiedDate":"2023-09-17"},{"lineNumber":236,"author":{"gitId":"Chen-Kuei"},"content":" return \"Please describe your event! \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":237,"author":{"gitId":"Chen-Kuei"},"content":" \"(format: event \u003ctask\u003e /from \u003ctime\u003e /to \u003ctime\u003e \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":238,"author":{"gitId":"Chen-Kuei"},"content":" \"(indicate both your time like: 2023-06-12 1400)\";","lastModifiedDate":"2023-09-20"},{"lineNumber":239,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":240,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(newTask);","lastModifiedDate":"2023-09-17"},{"lineNumber":241,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":242,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskAdded(newTask, tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":243,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":244,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":245,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":246,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027delete\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":247,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":248,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":249,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":250,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":251,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":252,"author":{"gitId":"Chen-Kuei"},"content":" public String handleDeleteCommand(String[] parts, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":253,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":254,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: delete \u003cindex\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":255,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":256,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":257,"author":{"gitId":"Chen-Kuei"},"content":" int deletedTaskIndex \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-09"},{"lineNumber":258,"author":{"gitId":"Chen-Kuei"},"content":" tasks.deleteTask(deletedTaskIndex);","lastModifiedDate":"2023-09-09"},{"lineNumber":259,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-09"},{"lineNumber":260,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskDeleted(tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":261,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":262,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":263,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":264,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027find\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":265,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":266,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":267,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":268,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":269,"author":{"gitId":"Chen-Kuei"},"content":" public String handleFindCommand(String[] parts, TaskList tasks) {","lastModifiedDate":"2023-09-17"},{"lineNumber":270,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-09"},{"lineNumber":271,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: find \u003ckeyword\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":272,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":273,"author":{"gitId":"Chen-Kuei"},"content":" return showFindCommand(parts[1], tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":274,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":275,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":276,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":277,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027update\u0027 command.","lastModifiedDate":"2023-09-20"},{"lineNumber":278,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":279,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-20"},{"lineNumber":280,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":281,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":282,"author":{"gitId":"Chen-Kuei"},"content":" public String handleUpdateCommand(String[] parts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":283,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":284,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: update \u003cindex\u003e \u003c/parts\u003e \u003c/new_info\u003e\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":285,"author":{"gitId":"Chen-Kuei"},"content":" \"(eg: update 2 /descr /have dinner)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":286,"author":{"gitId":"Chen-Kuei"},"content":" \"\\nRef. for \u003c/parts\u003e:\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":287,"author":{"gitId":"Chen-Kuei"},"content":" \"1./descr: for all types of task.\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":288,"author":{"gitId":"Chen-Kuei"},"content":" \"2./time: for \u0027Deadline\u0027 only.\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":289,"author":{"gitId":"Chen-Kuei"},"content":" \"3./start_time, /end_time: for \u0027Event\u0027 only.\";","lastModifiedDate":"2023-09-20"},{"lineNumber":290,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":291,"author":{"gitId":"Chen-Kuei"},"content":" String[] updateParts \u003d parts[1].split(\" /\");","lastModifiedDate":"2023-09-20"},{"lineNumber":292,"author":{"gitId":"Chen-Kuei"},"content":" String updateType \u003d updateParts[1].toLowerCase();","lastModifiedDate":"2023-09-20"},{"lineNumber":293,"author":{"gitId":"Chen-Kuei"},"content":" String output;","lastModifiedDate":"2023-09-23"},{"lineNumber":294,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":295,"author":{"gitId":"Chen-Kuei"},"content":" switch(updateType) {","lastModifiedDate":"2023-09-20"},{"lineNumber":296,"author":{"gitId":"Chen-Kuei"},"content":" case \"descr\":","lastModifiedDate":"2023-09-20"},{"lineNumber":297,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateDescr(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":298,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":299,"author":{"gitId":"Chen-Kuei"},"content":" case \"time\":","lastModifiedDate":"2023-09-20"},{"lineNumber":300,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateTime(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":301,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":302,"author":{"gitId":"Chen-Kuei"},"content":" case \"start_time\":","lastModifiedDate":"2023-09-20"},{"lineNumber":303,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateStartTime(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":304,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":305,"author":{"gitId":"Chen-Kuei"},"content":" case \"end_time\":","lastModifiedDate":"2023-09-20"},{"lineNumber":306,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateEndTime(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":307,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":308,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-20"},{"lineNumber":309,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d showError(\"sry... idk what u want to update.\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":310,"author":{"gitId":"Chen-Kuei"},"content":" \"u can type \u0027update\u0027 for more info!\");","lastModifiedDate":"2023-09-20"},{"lineNumber":311,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":312,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-20"},{"lineNumber":313,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":314,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":315,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":316,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the description of the task.","lastModifiedDate":"2023-09-20"},{"lineNumber":317,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":318,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":319,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":320,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":321,"author":{"gitId":"Chen-Kuei"},"content":" public String updateDescr(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":322,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3 ) {","lastModifiedDate":"2023-09-20"},{"lineNumber":323,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and description!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":324,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":325,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":326,"author":{"gitId":"Chen-Kuei"},"content":" String description \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":327,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":328,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":329,"author":{"gitId":"Chen-Kuei"},"content":" task.updateDescription(description);","lastModifiedDate":"2023-09-20"},{"lineNumber":330,"author":{"gitId":"Chen-Kuei"},"content":" return \"Great, I\u0027ve updated task \" + (index + 1) + \" !!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":331,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":332,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":333,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":334,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the time of a Deadline.","lastModifiedDate":"2023-09-20"},{"lineNumber":335,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":336,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":337,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks A TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":338,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":339,"author":{"gitId":"Chen-Kuei"},"content":" public String updateTime(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":340,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3 ) {","lastModifiedDate":"2023-09-20"},{"lineNumber":341,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and time!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":342,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":343,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":344,"author":{"gitId":"Chen-Kuei"},"content":" String time \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":345,"author":{"gitId":"Chen-Kuei"},"content":" Deadline task \u003d (Deadline)tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":346,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":347,"author":{"gitId":"Chen-Kuei"},"content":" task.updateTime(time);","lastModifiedDate":"2023-09-20"},{"lineNumber":348,"author":{"gitId":"Chen-Kuei"},"content":" return \"woohoo~~ the time of task \" + (index + 1) + \" has been updated!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":349,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":350,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":351,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":352,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the start time of an Event.","lastModifiedDate":"2023-09-23"},{"lineNumber":353,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":354,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing the update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":355,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks A TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":356,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":357,"author":{"gitId":"Chen-Kuei"},"content":" public String updateStartTime(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":358,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3) {","lastModifiedDate":"2023-09-20"},{"lineNumber":359,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and time !!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":360,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":361,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":362,"author":{"gitId":"Chen-Kuei"},"content":" String startTime \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":363,"author":{"gitId":"Chen-Kuei"},"content":" Event task \u003d (Event)tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":364,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":365,"author":{"gitId":"Chen-Kuei"},"content":" task.updateStartTime(startTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":366,"author":{"gitId":"Chen-Kuei"},"content":" return \"nice! task \" + (index + 1) + \" has new start time now!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":367,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":368,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":369,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":370,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the end time of an Event.","lastModifiedDate":"2023-09-23"},{"lineNumber":371,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":372,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing the update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":373,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks A TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":374,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":375,"author":{"gitId":"Chen-Kuei"},"content":" public String updateEndTime(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":376,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3) {","lastModifiedDate":"2023-09-20"},{"lineNumber":377,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and time !!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":378,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":379,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":380,"author":{"gitId":"Chen-Kuei"},"content":" String endTime \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":381,"author":{"gitId":"Chen-Kuei"},"content":" Event task \u003d (Event)tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":382,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":383,"author":{"gitId":"Chen-Kuei"},"content":" task.updateEndTime(endTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":384,"author":{"gitId":"Chen-Kuei"},"content":" return \"nice! task \" + (index + 1) + \" has new end time now!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":385,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":386,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":387,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":388,"author":{"gitId":"Chen-Kuei"},"content":" * Displays an error message.","lastModifiedDate":"2023-09-09"},{"lineNumber":389,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":390,"author":{"gitId":"Chen-Kuei"},"content":" * @param errorCommand The error message.","lastModifiedDate":"2023-09-09"},{"lineNumber":391,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":392,"author":{"gitId":"Chen-Kuei"},"content":" public String showError(String errorCommand) {","lastModifiedDate":"2023-09-17"},{"lineNumber":393,"author":{"gitId":"Chen-Kuei"},"content":" return errorCommand;","lastModifiedDate":"2023-09-17"},{"lineNumber":394,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":395,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":396,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":397,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming the addition of a task.","lastModifiedDate":"2023-09-09"},{"lineNumber":398,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":399,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task that we added.","lastModifiedDate":"2023-09-09"},{"lineNumber":400,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskCount The current number of tasks in the list.","lastModifiedDate":"2023-09-09"},{"lineNumber":401,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":402,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskAdded (Task task, int taskCount) {","lastModifiedDate":"2023-09-17"},{"lineNumber":403,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"*ฅ^•ﻌ•^ฅ* ogei!! I\u0027ve added this task:\";","lastModifiedDate":"2023-09-20"},{"lineNumber":404,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n \" + task;","lastModifiedDate":"2023-09-17"},{"lineNumber":405,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\nNow you have \" + taskCount + \" tasks in the list! meow--\";","lastModifiedDate":"2023-09-20"},{"lineNumber":406,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":407,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":408,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":409,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":410,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming the deletion of a task.","lastModifiedDate":"2023-09-09"},{"lineNumber":411,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":412,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskCount The current number of tasks in the list.","lastModifiedDate":"2023-09-09"},{"lineNumber":413,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":414,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskDeleted (int taskCount) {","lastModifiedDate":"2023-09-17"},{"lineNumber":415,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"OK, I\u0027ve removed this task.\";","lastModifiedDate":"2023-09-17"},{"lineNumber":416,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\nNow you have \" + taskCount + \" tasks in the list.\";","lastModifiedDate":"2023-09-17"},{"lineNumber":417,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":418,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":419,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":420,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":421,"author":{"gitId":"Chen-Kuei"},"content":" * Displays the list of tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":422,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":423,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskList The task list.","lastModifiedDate":"2023-09-09"},{"lineNumber":424,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":425,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskList (TaskList taskList) {","lastModifiedDate":"2023-09-17"},{"lineNumber":426,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Here are the tasks in your list:\";","lastModifiedDate":"2023-09-17"},{"lineNumber":427,"author":{"gitId":"Chen-Kuei"},"content":" for (int i \u003d 0; i \u003c taskList.size(); i++) {","lastModifiedDate":"2023-09-09"},{"lineNumber":428,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n\" + (i + 1) + \". \" + taskList.getTask(i);","lastModifiedDate":"2023-09-17"},{"lineNumber":429,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":430,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":431,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\nପ(๑•ᴗ•๑)ଓ ♡\";","lastModifiedDate":"2023-09-20"},{"lineNumber":432,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":433,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":434,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":435,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":436,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming that a task has been marked as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":437,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":438,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task that was marked as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":439,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":440,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskMarkedAsDone (Task task) {","lastModifiedDate":"2023-09-17"},{"lineNumber":441,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Nice! I\u0027ve marked this task as done:\";","lastModifiedDate":"2023-09-17"},{"lineNumber":442,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n \" + task;","lastModifiedDate":"2023-09-17"},{"lineNumber":443,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":444,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":445,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":446,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":447,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming that a task has been marked as not done.","lastModifiedDate":"2023-09-09"},{"lineNumber":448,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":449,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task that was marked as not done.","lastModifiedDate":"2023-09-09"},{"lineNumber":450,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":451,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskMarkedAsNotDone (Task task) {","lastModifiedDate":"2023-09-17"},{"lineNumber":452,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Noted, I\u0027ve marked this task as not done yet:\";","lastModifiedDate":"2023-09-17"},{"lineNumber":453,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n \" + task;","lastModifiedDate":"2023-09-17"},{"lineNumber":454,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":455,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":456,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":457,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":458,"author":{"gitId":"Chen-Kuei"},"content":" * Displays tasks tha match the keyword.","lastModifiedDate":"2023-09-09"},{"lineNumber":459,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":460,"author":{"gitId":"Chen-Kuei"},"content":" * @param keyword The keyword to search for the matching task.","lastModifiedDate":"2023-09-09"},{"lineNumber":461,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The list of tasks to search within.","lastModifiedDate":"2023-09-09"},{"lineNumber":462,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":463,"author":{"gitId":"Chen-Kuei"},"content":" public String showFindCommand (String keyword, TaskList tasks) {","lastModifiedDate":"2023-09-17"},{"lineNumber":464,"author":{"gitId":"Chen-Kuei"},"content":" TaskList matchingTasks \u003d tasks.findTasksByKeyword(keyword);","lastModifiedDate":"2023-09-09"},{"lineNumber":465,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":466,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Here are the matching tasks: \";","lastModifiedDate":"2023-09-17"},{"lineNumber":467,"author":{"gitId":"Chen-Kuei"},"content":" for (int i \u003d 0; i \u003c matchingTasks.size(); i++) {","lastModifiedDate":"2023-09-09"},{"lineNumber":468,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n\" + (i + 1) + \".\" + matchingTasks.getTask(i);","lastModifiedDate":"2023-09-17"},{"lineNumber":469,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":470,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":471,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":472,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":473,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":474,"author":{"gitId":"Chen-Kuei"},"content":" * Displays an exit message.","lastModifiedDate":"2023-09-09"},{"lineNumber":475,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":476,"author":{"gitId":"Chen-Kuei"},"content":" public String showExit() {","lastModifiedDate":"2023-09-17"},{"lineNumber":477,"author":{"gitId":"Chen-Kuei"},"content":" return \"Bye. Have a great day!\";","lastModifiedDate":"2023-09-17"},{"lineNumber":478,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":479,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":479}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" style\u003d\"-fx-border-color: #53301b; -fx-border-radius: 15; -fx-border-width: 0.5;\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" \u003cLabel fx:id\u003d\"dialog\" style\u003d\"-fx-background-color: pink; -fx-background-radius: 10;\" text\u003d\"Label\" textFill\u003d\"#53301b\" wrapText\u003d\"true\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" \u003cFont name\u003d\"HGSoeiKakupoptai\" size\u003d\"12.0\" /\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/font\u003e\u003c/Label\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":20}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"duke.MainWindow\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" \u003cLabel fx:id\u003d\"welcomeLabel\" style\u003d\"-fx-font-size: 14pt;\" /\u003e","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\" style\u003d\"-fx-background-color: #d8c3ab;\" AnchorPane.bottomAnchor\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" \u003cFont name\u003d\"HGSoeiKakupoptai\" size\u003d\"12.0\" /\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/TextField\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" textFill\u003d\"#53301b\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" \u003cFont name\u003d\"HGSoeiKakupoptai\" size\u003d\"14.0\" /\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" style\u003d\"-fx-background-color: grey; -fx-background-radius: 20;\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"558.0\" prefWidth\u003d\"386.0\" style\u003d\"-fx-background-color: #f1e3c1; -fx-region-border: red;\" /\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":31}},{"path":"src/test/java/duke/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import org.junit.jupiter.api.Assertions;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertNull;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"public class ParserTest {","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" public void testParseEvent() {","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" String userCommand \u003d \"event Project meeting /from 2023-09-10 1800 /to 2023-09-10 2100\";","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" assertTrue(task instanceof Event);","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" Assertions.assertEquals(\"Project meeting\", ((Event) task).description);","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":17}},{"path":"src/test/java/duke/TodoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"public class TodoTest {","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" public void dummyTest(){","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" assertEquals(2, 2);","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" public void anotherDummyTest(){","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" assertEquals(4, 4);","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" public void testToDataString() {","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" Todo todo \u003d new Todo(\"Finish iP soon!\");","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" String dataString \u003d todo.toDataString();","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" assertEquals(\"TODO | Finish iP soon!\", dataString);","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":24}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"todo Buy groceries","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"deadline Finish report /by 2023-12-15","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"event Team meeting /from 2023-12-20 14:00 /to 2023-12-20 15:30","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"list","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"mark 1","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"list","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"bye","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"Chen-Kuei":7}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"java -classpath ..\\bin duke.Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Chen-Kuei":1,"-":20}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"# duke.Duke project template","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11, update Intellij to the most recent version.","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. Open Intellij (if you are not in the welcome screen, click `File` \u003e `Close Project` to close the existing project first)","lastModifiedDate":"2021-01-17"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. Open the project into Intellij as follows:","lastModifiedDate":"2021-01-17"},{"lineNumber":11,"author":{"gitId":"-"},"content":" 1. Click `Open`.","lastModifiedDate":"2021-01-17"},{"lineNumber":12,"author":{"gitId":"-"},"content":" 1. Select the project directory, and click `OK`.","lastModifiedDate":"2021-01-17"},{"lineNumber":13,"author":{"gitId":"-"},"content":" 1. If there are any further prompts, accept the defaults.","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).\u003cbr\u003e","lastModifiedDate":"2021-07-29"},{"lineNumber":15,"author":{"gitId":"-"},"content":" In the same dialog, set the **Project language level** field to the `SDK default` option.","lastModifiedDate":"2021-07-29"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"3. After that, locate the `src/main/java/duke.Duke.java` file, right-click it, and choose `Run duke.Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Chen-Kuei":2,"-":22}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-27"},{"lineNumber":6,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":7,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"mainClassName \u003d \u0027duke.Launcher\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"shadowJar {","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" archiveFileName \u003d \u0027BiuBiu.jar\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"javafx {","lastModifiedDate":"2023-09-27"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" version \u003d \"11.0.2\"","lastModifiedDate":"2023-09-27"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" modules \u003d [ \u0027javafx.controls\u0027, \u0027javafx.fxml\u0027 ]","lastModifiedDate":"2023-09-27"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-27"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":"java {","lastModifiedDate":"2023-09-27"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" // Use JDK 11","lastModifiedDate":"2023-09-27"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" sourceCompatibility \u003d JavaVersion.VERSION_11","lastModifiedDate":"2023-09-27"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" targetCompatibility \u003d JavaVersion.VERSION_11","lastModifiedDate":"2023-09-27"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-27"},{"lineNumber":25,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":"checkstyle {","lastModifiedDate":"2023-09-13"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2023-09-13"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-13"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":33,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":35,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":61,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":62,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":63,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":64,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":65,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":66,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":67,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":68,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":69,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Chen-Kuei":37,"-":32}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"# BiuBiu","lastModifiedDate":"2023-09-21"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"\u003e meooow :eyes: :heart_on_fire:","lastModifiedDate":"2023-09-21"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"### BiuBiu is here to help you remember your schedule! It\u0027s:","lastModifiedDate":"2023-09-21"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" - text-based","lastModifiedDate":"2023-09-21"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" - easy to learn","lastModifiedDate":"2023-09-21"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" - ~~fast~~ **SUPER SUPER FAST** to use","lastModifiedDate":"2023-09-21"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"### Features:","lastModifiedDate":"2023-09-21"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"- [x] Memorise tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"- [x] Update tasks","lastModifiedDate":"2023-09-21"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"- [ ] Reminders (coming soon!)","lastModifiedDate":"2023-09-21"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"### `Keyword` Reference:","lastModifiedDate":"2023-09-21"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"- `todo \u003ctask_descr\u003e`: add a Todo task","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" eg: `todo get a cup of coffee`","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"- `deadline \u003ctask_descr\u003e /by \u003ctime\u003e`: add a Deadline task(time format eg: 2023-09-21)","lastModifiedDate":"2023-09-21"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" eg: `deadline get a haircut /by 2023-09-22`","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"- `event \u003ctask_descr\u003e /from \u003cstart_time /to \u003cend_time\u003e\u003e`: add an Event task(time format eg: 2023-09-21 1400)","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" eg: `event hang out with friends /from 2023-09-22 1400 /to 2023-09-22 2000`","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"- `mark \u003ctask_index\u003e`: mark the (task_index)th task as done(task_index is in integer!)","lastModifiedDate":"2023-09-21"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" eg: `mark 1`","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":"- `unmark \u003ctask_index\u003e`: mark the (task_index)th task as not done yet","lastModifiedDate":"2023-09-21"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" eg: `unmark 1`","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":"- `find \u003ctask_keyword\u003e`: find and list all the tasks that contain the keyword","lastModifiedDate":"2023-09-21"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" eg: `find haircut`","lastModifiedDate":"2023-09-23"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"- `delete \u003ctask_index\u003e`: delete the (task_index)th task in the list","lastModifiedDate":"2023-09-21"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" ","lastModifiedDate":"2023-09-23"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" eg: `delete 1`","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":"- `update \u003ctask_index\u003e \u003c/parts\u003e \u003c/new_info\u003e`: update the certain part of the (task_index)th task (/parts: /decsr, /time, /start_time, /end_time)","lastModifiedDate":"2023-09-21"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" eg: `update 3 /descr /hang out with doggy \u003c3`","lastModifiedDate":"2023-09-23"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":"- `list`: list out all the tasks in your TaskList.","lastModifiedDate":"2023-09-21"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" eg: `list`","lastModifiedDate":"2023-09-23"},{"lineNumber":45,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":"### All you need to do is,","lastModifiedDate":"2023-09-21"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":"1. download it from [here](https://github.com/Chen-Kuei/ip/tree/master).","lastModifiedDate":"2023-09-21"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":"2. double-click it.","lastModifiedDate":"2023-09-21"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":"3. add your tasks.","lastModifiedDate":"2023-09-21"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":"4. let it manage your tasks for u :kissing_cat:","lastModifiedDate":"2023-09-21"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":"*If you have the JAR file, you can simply type the command below at the folder containing the file:*","lastModifiedDate":"2023-09-21"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"```ruby","lastModifiedDate":"2023-09-21"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":"java -jar BiuBiu.jar","lastModifiedDate":"2023-09-21"},{"lineNumber":56,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"}],"authorContributionMap":{"Chen-Kuei":41,"-":15}},{"path":"docs/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"TODO | read","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"TODO | wash","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"Chen-Kuei":2}},{"path":"src/main/java/duke/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Locale;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"/**","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" * Represents a task with a deadline.","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" // protected String by;","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDate deadline;","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Deadline task.","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" * @param deadlineString The deadline date string in \"yyyy-MM-dd\" format.","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" public Deadline(String description, String deadlineString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" super(description);","lastModifiedDate":"2023-09-03"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" this.deadline \u003d parseDeadline(deadlineString);","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the time of a Deadline.","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" * @param deadlineString A new time string.","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" public void updateTime(String deadlineString) {","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" this.deadline \u003d parseDeadline(deadlineString);","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" * Parses the deadline date from string.","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" * @param deadlineString The deadline date string in \"yyyy-MM-dd\" format.","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" * @return The parsed deadline date as a LocalDate object, or null if parsing fails.","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDate parseDeadline(String deadlineString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineString.isEmpty()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" return LocalDate.parse(deadlineString, DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error parsing date: \" + deadlineString);","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" private String formatDeadline (LocalDate deadlineDate) {","lastModifiedDate":"2023-09-09"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineDate \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" return \"Invalid date.\";","lastModifiedDate":"2023-09-09"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"MMM dd yyyy\", Locale.ENGLISH);","lastModifiedDate":"2023-09-09"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" return deadlineDate.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" private String saveFormatDeadline (LocalDate deadlineDate) {","lastModifiedDate":"2023-09-09"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineDate \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" return \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd\");","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" return deadlineDate.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task for saving.","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":" * @return The formatted string representation of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-08"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" return \"DEADLINE | \" + super.toDataString() + \" | \" + saveFormatDeadline(deadline);","lastModifiedDate":"2023-09-09"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task for display.","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" * @return The formatted string representation fo the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" return \"[D]\" + super.toString() + \" (by: \" + formatDeadline(deadline) + \")\";","lastModifiedDate":"2023-09-09"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":90}},{"path":"src/main/java/duke/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" private Label dialog;","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-11"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-11"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" private void flip() {","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" db.flip();","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" return db;","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":56}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-13"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"public class Duke extends Application {","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" private static final String DATA_FILE_PATH \u003d \"./docs/duke.txt\";","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" final private static TaskList tasks \u003d new TaskList();","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" final private static Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" final private static Storage storage \u003d new Storage(DATA_FILE_PATH);","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-11"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" final private Image user \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" final private Image biubiu \u003d new Image(this.getClass().getResourceAsStream(\"/images/BiuBiu.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" * The main entry point of the Duke program.","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" * @param args Command-line arguments (not used).","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" public static void main (String[] args) {","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" boolean isExit \u003d false;","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" while(!isExit) {","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" String userCommand \u003d ui.readCommand();","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" isExit \u003d ui.handleCommand(userCommand, tasks, storage).equals(ui.showExit());","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" public void start (Stage stage) {","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" // Step 1","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" Button sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-23"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" Scene scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" stage.show();","lastModifiedDate":"2023-09-11"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" // Step 2","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" stage.setTitle(\"Duke\");","lastModifiedDate":"2023-09-11"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-11"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setPrefSize(385, 535);","lastModifiedDate":"2023-09-11"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-11"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-11"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-11"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-11"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setLeftAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-11"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" // Step 3","lastModifiedDate":"2023-09-11"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":" sendButton.setOnMouseClicked(event -\u003e {","lastModifiedDate":"2023-09-11"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":" handleUserInput();","lastModifiedDate":"2023-09-11"},{"lineNumber":92,"author":{"gitId":"Chen-Kuei"},"content":" });","lastModifiedDate":"2023-09-11"},{"lineNumber":93,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":94,"author":{"gitId":"Chen-Kuei"},"content":" userInput.setOnAction((event -\u003e {","lastModifiedDate":"2023-09-11"},{"lineNumber":95,"author":{"gitId":"Chen-Kuei"},"content":" handleUserInput();","lastModifiedDate":"2023-09-11"},{"lineNumber":96,"author":{"gitId":"Chen-Kuei"},"content":" }));","lastModifiedDate":"2023-09-11"},{"lineNumber":97,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":98,"author":{"gitId":"Chen-Kuei"},"content":" // Scroll down to the end automatically","lastModifiedDate":"2023-09-11"},{"lineNumber":99,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.heightProperty().addListener((observable -\u003e scrollPane.setVvalue(1.0)));","lastModifiedDate":"2023-09-11"},{"lineNumber":100,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":101,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":102,"author":{"gitId":"Chen-Kuei"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-11"},{"lineNumber":103,"author":{"gitId":"Chen-Kuei"},"content":" String userText \u003d userInput.getText();","lastModifiedDate":"2023-09-11"},{"lineNumber":104,"author":{"gitId":"Chen-Kuei"},"content":" String dukeText \u003d getResponse(userInput.getText());","lastModifiedDate":"2023-09-11"},{"lineNumber":105,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":106,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-11"},{"lineNumber":107,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getUserDialog(userText, user),","lastModifiedDate":"2023-09-11"},{"lineNumber":108,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getDukeDialog(dukeText, biubiu)","lastModifiedDate":"2023-09-11"},{"lineNumber":109,"author":{"gitId":"Chen-Kuei"},"content":" );","lastModifiedDate":"2023-09-11"},{"lineNumber":110,"author":{"gitId":"Chen-Kuei"},"content":" userInput.clear();","lastModifiedDate":"2023-09-11"},{"lineNumber":111,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":112,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":113,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":114,"author":{"gitId":"Chen-Kuei"},"content":" * Gets s response based on the user input.","lastModifiedDate":"2023-09-17"},{"lineNumber":115,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":116,"author":{"gitId":"Chen-Kuei"},"content":" * @param input The user input.","lastModifiedDate":"2023-09-17"},{"lineNumber":117,"author":{"gitId":"Chen-Kuei"},"content":" * @return A response generated based on the user input.","lastModifiedDate":"2023-09-17"},{"lineNumber":118,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":119,"author":{"gitId":"Chen-Kuei"},"content":" public String getResponse (String input) {","lastModifiedDate":"2023-09-17"},{"lineNumber":120,"author":{"gitId":"Chen-Kuei"},"content":" return ui.handleCommand(input, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":121,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":122,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":123,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":124,"author":{"gitId":"Chen-Kuei"},"content":" * Retrieves the current TaskList instance.","lastModifiedDate":"2023-09-23"},{"lineNumber":125,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":126,"author":{"gitId":"Chen-Kuei"},"content":" * @return The TaskList instance containing tasks.","lastModifiedDate":"2023-09-23"},{"lineNumber":127,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":128,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList getTaskList() {","lastModifiedDate":"2023-09-23"},{"lineNumber":129,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-23"},{"lineNumber":130,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":131,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":131}},{"path":"src/main/java/duke/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Locale;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"public class Event extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDateTime startTime;","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDateTime endTime;","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" * Initializes a new Event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" * @param startDateTimeString The start date and time of the event in the format of \"yyyy-MM-dd HHmm\".","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" * @param endDateTimeString The end date and time of the event in the format of \"yyyy-MM-dd HHmm\".","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" public Event(String description, String startDateTimeString, String endDateTimeString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" super(description);","lastModifiedDate":"2023-09-03"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" this.startTime \u003d parseDateTime(startDateTimeString);","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" this.endTime \u003d parseDateTime(endDateTimeString);","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the start time of an Event.","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" * @param startDateTimeString A new start time string.","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" public void updateStartTime(String startDateTimeString) {","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" this.startTime \u003d parseDateTime(startDateTimeString);","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the end time of an Event.","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" * @param endDateTimeString A new end time string.","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" public void updateEndTime(String endDateTimeString) {","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" this.endTime \u003d parseDateTime(endDateTimeString);","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" private LocalDateTime parseDateTime (String dateTimeString) {","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" if (dateTimeString.isEmpty()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" return LocalDateTime.parse(dateTimeString, DateTimeFormatter.ofPattern(\"yyyy-MM-dd HHmm\"));","lastModifiedDate":"2023-09-17"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error parsing date and time: \" + dateTimeString);","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-13"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" private String formatDateTime (LocalDateTime dateTime) {","lastModifiedDate":"2023-09-09"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" if (dateTime \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" return \"Invalid Date and Time!\";","lastModifiedDate":"2023-09-09"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"MMM dd yyyy h:mm a\", Locale.ENGLISH);","lastModifiedDate":"2023-09-09"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" return dateTime.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" private String saveFormatDateTime (LocalDateTime dateTime) {","lastModifiedDate":"2023-09-09"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" if (dateTime \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" return \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(\"yyyy-MM-dd HHmm\");","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" return dateTime.format(formatter);","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" * Converts the event task to a formatted string.","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" return \"EVENT | \" + super.toDataString() + \" | \" + saveFormatDateTime(startTime) + \" | \" + saveFormatDateTime(endTime);","lastModifiedDate":"2023-09-09"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" * Converts the event task to a string representation for displaying.","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the event task.","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-08"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" return \"[E]\" + super.toString() + \" (from: \" + formatDateTime(startTime) + \" to: \" + formatDateTime(endTime) + \")\";","lastModifiedDate":"2023-09-09"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":91}},{"path":"src/main/java/duke/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"public class Launcher {","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" public static void main (String[] args) {","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":9}},{"path":"src/main/java/duke/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"/**","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" final private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" TaskList tasks \u003d duke.getTaskList();","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" tasks.loadTasksFromFile(\"./docs/duke.txt\");","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-11"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" stage.setTitle(\"--BiuBiu--\");","lastModifiedDate":"2023-09-21"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" stage.show();","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":36}},{"path":"src/main/java/duke/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"/**","lastModifiedDate":"2023-09-11"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-11"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-11"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-11"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" private Label welcomeLabel;","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" private Duke duke;","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" final private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/User.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" final private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/BiuBiu.jpg\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" public void initialize() {","lastModifiedDate":"2023-09-11"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" String welcomeMessage \u003d \"Hi, I\u0027m BiuBiu.\\nI\u0027m ready to help u!\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" \"\\n(u can save your task as todo/deadline/event)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" \"(can mark/unmark/find/delete/list/update your tasks)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" \"(type these keyword to find out more!)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" \"type \u0027woof\u0027 for surprise\u003e\u003c\";","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.getChildren().add(DialogBox.getDukeDialog(welcomeMessage, dukeImage));","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" @FXML","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-11"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" );","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" userInput.clear();","lastModifiedDate":"2023-09-11"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":61}},{"path":"src/main/java/duke/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"public class Parser {","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" * Parses a user command and creates a task object.","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand The user command.","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" * @return A Task object.","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" public static Task parse (String userCommand) {","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d new Task(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" String[] commandParts \u003d userCommand.split(\" \", 2);","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" String taskType \u003d commandParts[0].toLowerCase();","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" switch (taskType) {","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" case \"todo\":","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" task \u003d parseTodoCommand(commandParts);","lastModifiedDate":"2023-09-17"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" task \u003d parseDeadlineCommand(commandParts);","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" case \"event\":","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" task \u003d parseEventCommand(commandParts);","lastModifiedDate":"2023-09-17"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Sorry, I don\u0027t understand the command.\");","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" return task;","lastModifiedDate":"2023-09-17"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" private static Todo parseTodoCommand(String[] commandParts) {","lastModifiedDate":"2023-09-17"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" if (commandParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"What you want to do?\");","lastModifiedDate":"2023-09-17"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" return new Todo(commandParts[1]);","lastModifiedDate":"2023-09-17"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" private static Deadline parseDeadlineCommand(String[] commandParts) {","lastModifiedDate":"2023-09-17"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" if (commandParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Please describe your deadline:)\");","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" String[] deadlineParts \u003d commandParts[1].split(\" /by \");","lastModifiedDate":"2023-09-17"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" if (deadlineParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Tell me what and when your deadline is!\");","lastModifiedDate":"2023-09-17"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return new Deadline(deadlineParts[0], deadlineParts[1]);","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" private static Event parseEventCommand(String[] commandParts) {","lastModifiedDate":"2023-09-17"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" if (commandParts.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Please describe your event.\");","lastModifiedDate":"2023-09-17"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" String[] eventParts \u003d commandParts[1].split(\" /from | /to \");","lastModifiedDate":"2023-09-17"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" if (eventParts.length \u003c 3) {","lastModifiedDate":"2023-09-17"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Tell me what your event is and when it starts/ends!\");","lastModifiedDate":"2023-09-17"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" return null;","lastModifiedDate":"2023-09-17"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" return new Event(eventParts[0], eventParts[1], eventParts[2]);","lastModifiedDate":"2023-09-17"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":68}},{"path":"src/main/java/duke/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.File;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"public class Storage {","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" final private String filePath;","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Storage object.","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" * @param filePath The file path where the task data will be saved.","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" * Enum representing the task types.","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" public enum TaskType {","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" TODO, DEADLINE, EVENT","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" * Saves the tasks from the TaskList to the file path.","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The taskList containing tasks to be saved.","lastModifiedDate":"2023-09-09"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" public void saveTasks(TaskList tasks) {","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" file.getParentFile().mkdirs();","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" try (BufferedWriter writer \u003d new BufferedWriter(new FileWriter(file))) {","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.getTask(i);","lastModifiedDate":"2023-09-09"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" writer.write(task.toDataString());","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" writer.newLine();","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error saving tasks.\");","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":46}},{"path":"src/main/java/duke/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"public class Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":" protected String description;","lastModifiedDate":"2023-09-03"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" protected boolean isDone;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Task object.","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" public Task(String description) {","lastModifiedDate":"2023-09-03"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-03"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-03"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the description of Task.","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" * @param description A string of new description.","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" public void updateDescription(String description) {","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" * Marks the task as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" public void markAsDone() {","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" * Marks the tasks as not dome yet.","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" public void markAsNotDone() {","lastModifiedDate":"2023-09-03"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-09-03"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task\u0027s description for data storage.","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" * @return The task\u0027s description.","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" return description;","lastModifiedDate":"2023-09-08"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" return (isDone ? \"[X] \" : \"[ ] \") + description;","lastModifiedDate":"2023-09-03"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":58}},{"path":"src/main/java/duke/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.List;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"public class TaskList {","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" private final List\u003cTask\u003e tasks;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs an empty TaskList.","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList() {","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" this.tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" * Adds a task to the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task to be added.","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" public void addTask (Task task) {","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" * Deletes a task from the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskIndex The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" public void deleteTask (int taskIndex) {","lastModifiedDate":"2023-09-09"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" if (taskIndex \u003e\u003d 0 \u0026\u0026 taskIndex \u003c tasks.size()) {","lastModifiedDate":"2023-09-09"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" tasks.remove(taskIndex);","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" * Gets the number of tasks in the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" * @return The number of tasks in the TaskList.","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" public int size() {","lastModifiedDate":"2023-09-09"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" return tasks.size();","lastModifiedDate":"2023-09-09"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" * Gets a task from the TaskList at the specified index.","lastModifiedDate":"2023-09-09"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" * @return The task at the specified index.","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" public Task getTask(int index) {","lastModifiedDate":"2023-09-09"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return tasks.get(index);","lastModifiedDate":"2023-09-09"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":" * Marks a task as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" public void markTaskAsDone(int index) {","lastModifiedDate":"2023-09-09"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.get(index);","lastModifiedDate":"2023-09-09"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" task.markAsDone();","lastModifiedDate":"2023-09-09"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" * Marks a task as not done.","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" * @param index The index of the task.","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" public void markTaskAsNotDone(int index) {","lastModifiedDate":"2023-09-09"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.get(index);","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" task.markAsNotDone();","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" * Finds the tasks that match the keyword.","lastModifiedDate":"2023-09-09"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" * @param keyword The keywords used to search matching tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" * @return Tasks that match the keyword.","lastModifiedDate":"2023-09-09"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList findTasksByKeyword (String keyword) {","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" TaskList matchingTasks \u003d new TaskList();","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":" if (task.description.toLowerCase().contains(keyword.toLowerCase())) {","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" matchingTasks.addTask(task);","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" return matchingTasks;","lastModifiedDate":"2023-09-09"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":92,"author":{"gitId":"Chen-Kuei"},"content":" * Loads tasks from a specified file path.","lastModifiedDate":"2023-09-23"},{"lineNumber":93,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":94,"author":{"gitId":"Chen-Kuei"},"content":" * @param filePath The path to the file from which tasks will be loaded.","lastModifiedDate":"2023-09-23"},{"lineNumber":95,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":96,"author":{"gitId":"Chen-Kuei"},"content":" public void loadTasksFromFile(String filePath) {","lastModifiedDate":"2023-09-23"},{"lineNumber":97,"author":{"gitId":"Chen-Kuei"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-23"},{"lineNumber":98,"author":{"gitId":"Chen-Kuei"},"content":" ui.loadTasks(filePath);","lastModifiedDate":"2023-09-23"},{"lineNumber":99,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":100,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":100}},{"path":"src/main/java/duke/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-03"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Todo task.","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" * @param description The description of the todo task.","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" public Todo(String description) {","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" super(description);","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the Todo task.","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the Todo task for the data storage.","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-03"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" public String toDataString() {","lastModifiedDate":"2023-09-08"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" return \"TODO | \" + super.toDataString();","lastModifiedDate":"2023-09-08"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-08"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" * Returns a string representation of the Todo task.","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" * @return A string representation of the Todo task for display.","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" @Override","lastModifiedDate":"2023-09-08"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" public String toString() {","lastModifiedDate":"2023-09-03"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-09-03"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-03"}],"authorContributionMap":{"Chen-Kuei":32}},{"path":"src/main/java/duke/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.BufferedReader;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.File;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.FileReader;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"public class Ui {","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" final private Scanner scanner;","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" final private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" * Constructs a Ui object.","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" public Ui() {","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" scanner \u003d new Scanner(System.in);","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" * Reads a user command.","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" * @return The user\u0027s command.","lastModifiedDate":"2023-09-09"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" public String readCommand() {","lastModifiedDate":"2023-09-09"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" return scanner.nextLine();","lastModifiedDate":"2023-09-09"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":32,"author":{"gitId":"Chen-Kuei"},"content":" * Loads tasks from the file path.","lastModifiedDate":"2023-09-09"},{"lineNumber":33,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":34,"author":{"gitId":"Chen-Kuei"},"content":" * @param filePath The file path.","lastModifiedDate":"2023-09-09"},{"lineNumber":35,"author":{"gitId":"Chen-Kuei"},"content":" * @return A TaskList containing the loaded tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":36,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":37,"author":{"gitId":"Chen-Kuei"},"content":" public TaskList loadTasks(String filePath) {","lastModifiedDate":"2023-09-09"},{"lineNumber":38,"author":{"gitId":"Chen-Kuei"},"content":" TaskList tasks \u003d duke.getTaskList();","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"Chen-Kuei"},"content":" File file \u003d new File(filePath);","lastModifiedDate":"2023-09-09"},{"lineNumber":40,"author":{"gitId":"Chen-Kuei"},"content":" if (!file.exists()) {","lastModifiedDate":"2023-09-17"},{"lineNumber":41,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Data file does not exist.\");","lastModifiedDate":"2023-09-17"},{"lineNumber":42,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-17"},{"lineNumber":43,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":44,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":45,"author":{"gitId":"Chen-Kuei"},"content":" try (BufferedReader reader \u003d new BufferedReader(new FileReader(file))) {","lastModifiedDate":"2023-09-09"},{"lineNumber":46,"author":{"gitId":"Chen-Kuei"},"content":" String line;","lastModifiedDate":"2023-09-09"},{"lineNumber":47,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":48,"author":{"gitId":"Chen-Kuei"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":49,"author":{"gitId":"Chen-Kuei"},"content":" String[] taskData \u003d line.split(\" \\\\| \");","lastModifiedDate":"2023-09-09"},{"lineNumber":50,"author":{"gitId":"Chen-Kuei"},"content":" if (taskData.length \u003c 2) {","lastModifiedDate":"2023-09-17"},{"lineNumber":51,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Skipping corrupted task data: \" + line);","lastModifiedDate":"2023-09-17"},{"lineNumber":52,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-17"},{"lineNumber":53,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":54,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":55,"author":{"gitId":"Chen-Kuei"},"content":" storeTasksToTaskList(taskData, tasks);","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":57,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":58,"author":{"gitId":"Chen-Kuei"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-23"},{"lineNumber":59,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Error loading tasks from the file.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":60,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":61,"author":{"gitId":"Chen-Kuei"},"content":" return tasks;","lastModifiedDate":"2023-09-23"},{"lineNumber":62,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":63,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":64,"author":{"gitId":"Chen-Kuei"},"content":" public void storeTasksToTaskList(String[] taskData, TaskList tasks) {","lastModifiedDate":"2023-09-23"},{"lineNumber":65,"author":{"gitId":"Chen-Kuei"},"content":" Storage.TaskType taskType \u003d Storage.TaskType.valueOf(taskData[0]);","lastModifiedDate":"2023-09-09"},{"lineNumber":66,"author":{"gitId":"Chen-Kuei"},"content":" String taskDescription \u003d taskData[1];","lastModifiedDate":"2023-09-09"},{"lineNumber":67,"author":{"gitId":"Chen-Kuei"},"content":" String taskTime1 \u003d (taskData.length \u003e 2) ? taskData[2] : \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":68,"author":{"gitId":"Chen-Kuei"},"content":" String taskTime2 \u003d (taskData.length \u003e 3) ? taskData[3] : \"\";","lastModifiedDate":"2023-09-09"},{"lineNumber":69,"author":{"gitId":"Chen-Kuei"},"content":" switch (taskType) {","lastModifiedDate":"2023-09-09"},{"lineNumber":70,"author":{"gitId":"Chen-Kuei"},"content":" case TODO:","lastModifiedDate":"2023-09-09"},{"lineNumber":71,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(new Todo(taskDescription));","lastModifiedDate":"2023-09-09"},{"lineNumber":72,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":73,"author":{"gitId":"Chen-Kuei"},"content":" case DEADLINE:","lastModifiedDate":"2023-09-09"},{"lineNumber":74,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(new Deadline(taskDescription, taskTime1));","lastModifiedDate":"2023-09-09"},{"lineNumber":75,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":76,"author":{"gitId":"Chen-Kuei"},"content":" case EVENT:","lastModifiedDate":"2023-09-09"},{"lineNumber":77,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(new Event(taskDescription, taskTime1, taskTime2));","lastModifiedDate":"2023-09-09"},{"lineNumber":78,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":79,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-09"},{"lineNumber":80,"author":{"gitId":"Chen-Kuei"},"content":" System.out.println(\"Invalid task type: \" + taskType);","lastModifiedDate":"2023-09-09"},{"lineNumber":81,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":82,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":83,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":84,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":85,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":86,"author":{"gitId":"Chen-Kuei"},"content":" * Handles user commands.","lastModifiedDate":"2023-09-09"},{"lineNumber":87,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":88,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand The user\u0027s command.","lastModifiedDate":"2023-09-09"},{"lineNumber":89,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The list of tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":90,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The storage object to save tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":91,"author":{"gitId":"Chen-Kuei"},"content":" * @return True if the program should exit.","lastModifiedDate":"2023-09-09"},{"lineNumber":92,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":93,"author":{"gitId":"Chen-Kuei"},"content":" public String handleCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":94,"author":{"gitId":"Chen-Kuei"},"content":" String output;","lastModifiedDate":"2023-09-23"},{"lineNumber":95,"author":{"gitId":"Chen-Kuei"},"content":" try {","lastModifiedDate":"2023-09-09"},{"lineNumber":96,"author":{"gitId":"Chen-Kuei"},"content":" String[] parts \u003d userCommand.split(\" \", 2);","lastModifiedDate":"2023-09-09"},{"lineNumber":97,"author":{"gitId":"Chen-Kuei"},"content":" String commandType \u003d parts[0].toLowerCase();","lastModifiedDate":"2023-09-09"},{"lineNumber":98,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":99,"author":{"gitId":"Chen-Kuei"},"content":" switch (commandType) {","lastModifiedDate":"2023-09-09"},{"lineNumber":100,"author":{"gitId":"Chen-Kuei"},"content":" case \"bye\":","lastModifiedDate":"2023-09-09"},{"lineNumber":101,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleByeCommand(tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":102,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-17"},{"lineNumber":103,"author":{"gitId":"Chen-Kuei"},"content":" case \"list\":","lastModifiedDate":"2023-09-09"},{"lineNumber":104,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d showTaskList(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":105,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":106,"author":{"gitId":"Chen-Kuei"},"content":" case \"mark\":","lastModifiedDate":"2023-09-09"},{"lineNumber":107,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleMarkCommand(parts, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":108,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":109,"author":{"gitId":"Chen-Kuei"},"content":" case \"unmark\":","lastModifiedDate":"2023-09-09"},{"lineNumber":110,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleUnmarkCommand(parts, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":111,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":112,"author":{"gitId":"Chen-Kuei"},"content":" case \"todo\":","lastModifiedDate":"2023-09-09"},{"lineNumber":113,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleTodoCommand(userCommand, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":114,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":115,"author":{"gitId":"Chen-Kuei"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-09"},{"lineNumber":116,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleDeadlineCommand(userCommand, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":117,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":118,"author":{"gitId":"Chen-Kuei"},"content":" case \"event\":","lastModifiedDate":"2023-09-09"},{"lineNumber":119,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleEventCommand(userCommand, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":120,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-17"},{"lineNumber":121,"author":{"gitId":"Chen-Kuei"},"content":" case \"delete\":","lastModifiedDate":"2023-09-17"},{"lineNumber":122,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleDeleteCommand(parts, tasks, storage);","lastModifiedDate":"2023-09-17"},{"lineNumber":123,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-09"},{"lineNumber":124,"author":{"gitId":"Chen-Kuei"},"content":" case \"find\":","lastModifiedDate":"2023-09-17"},{"lineNumber":125,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleFindCommand(parts, tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":126,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-17"},{"lineNumber":127,"author":{"gitId":"Chen-Kuei"},"content":" case \"update\":","lastModifiedDate":"2023-09-20"},{"lineNumber":128,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d handleUpdateCommand(parts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":129,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":130,"author":{"gitId":"Chen-Kuei"},"content":" case \"woof\":","lastModifiedDate":"2023-09-20"},{"lineNumber":131,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d \"meow\";","lastModifiedDate":"2023-09-20"},{"lineNumber":132,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":133,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-17"},{"lineNumber":134,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d showError(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":135,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":136,"author":{"gitId":"Chen-Kuei"},"content":" } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {","lastModifiedDate":"2023-09-17"},{"lineNumber":137,"author":{"gitId":"Chen-Kuei"},"content":" return showError(\"I don\u0027t know this...\");","lastModifiedDate":"2023-09-20"},{"lineNumber":138,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":139,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":140,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":141,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":142,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":143,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027bye\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":144,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":145,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":146,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":147,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":148,"author":{"gitId":"Chen-Kuei"},"content":" public String handleByeCommand(TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":149,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":150,"author":{"gitId":"Chen-Kuei"},"content":" return showExit();","lastModifiedDate":"2023-09-17"},{"lineNumber":151,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":152,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":153,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":154,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":155,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027mark\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":156,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":157,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":158,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":159,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":160,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":161,"author":{"gitId":"Chen-Kuei"},"content":" public String handleMarkCommand(String[] parts, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":162,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":163,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: mark \u003cindex\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":164,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":165,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":166,"author":{"gitId":"Chen-Kuei"},"content":" int doneTaskIndex \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-17"},{"lineNumber":167,"author":{"gitId":"Chen-Kuei"},"content":" tasks.markTaskAsDone(doneTaskIndex);","lastModifiedDate":"2023-09-17"},{"lineNumber":168,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":169,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskMarkedAsDone(tasks.getTask(doneTaskIndex));","lastModifiedDate":"2023-09-17"},{"lineNumber":170,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":171,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":172,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":173,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027unmark\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":174,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":175,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":176,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":177,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":178,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":179,"author":{"gitId":"Chen-Kuei"},"content":" public String handleUnmarkCommand(String[] parts, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":180,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":181,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: unmark \u003cindex\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":182,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":183,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":184,"author":{"gitId":"Chen-Kuei"},"content":" int notDoneTaskIndex \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-17"},{"lineNumber":185,"author":{"gitId":"Chen-Kuei"},"content":" tasks.markTaskAsNotDone(notDoneTaskIndex);","lastModifiedDate":"2023-09-17"},{"lineNumber":186,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":187,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskMarkedAsNotDone(tasks.getTask(notDoneTaskIndex));","lastModifiedDate":"2023-09-17"},{"lineNumber":188,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":189,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":190,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":191,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027todo\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":192,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":193,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand A string representing user command.","lastModifiedDate":"2023-09-17"},{"lineNumber":194,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":195,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":196,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":197,"author":{"gitId":"Chen-Kuei"},"content":" public String handleTodoCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":198,"author":{"gitId":"Chen-Kuei"},"content":" Task newTask \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-09"},{"lineNumber":199,"author":{"gitId":"Chen-Kuei"},"content":" if (newTask \u003d\u003d null) {","lastModifiedDate":"2023-09-09"},{"lineNumber":200,"author":{"gitId":"Chen-Kuei"},"content":" return \"What you want to do?? \\n(format: todo \u003ctask\u003e)\";","lastModifiedDate":"2023-09-20"},{"lineNumber":201,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":202,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(newTask);","lastModifiedDate":"2023-09-09"},{"lineNumber":203,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-09"},{"lineNumber":204,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskAdded(newTask, tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":205,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":206,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":207,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":208,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027deadline\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":209,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":210,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand A string representing user command.","lastModifiedDate":"2023-09-17"},{"lineNumber":211,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":212,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":213,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":214,"author":{"gitId":"Chen-Kuei"},"content":" public String handleDeadlineCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":215,"author":{"gitId":"Chen-Kuei"},"content":" Task newTask \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":216,"author":{"gitId":"Chen-Kuei"},"content":" if (newTask \u003d\u003d null) {","lastModifiedDate":"2023-09-17"},{"lineNumber":217,"author":{"gitId":"Chen-Kuei"},"content":" return \"Please describe your deadline! \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":218,"author":{"gitId":"Chen-Kuei"},"content":" \"(format: deadline \u003ctask\u003e /by \u003ctime\u003e) \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":219,"author":{"gitId":"Chen-Kuei"},"content":" \"(indicate your time like: 2023-05-20)\";","lastModifiedDate":"2023-09-20"},{"lineNumber":220,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":221,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(newTask);","lastModifiedDate":"2023-09-17"},{"lineNumber":222,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":223,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskAdded(newTask, tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":224,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":225,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":226,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":227,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027event\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":228,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":229,"author":{"gitId":"Chen-Kuei"},"content":" * @param userCommand A string representing user command.","lastModifiedDate":"2023-09-17"},{"lineNumber":230,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":231,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":232,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":233,"author":{"gitId":"Chen-Kuei"},"content":" public String handleEventCommand(String userCommand, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":234,"author":{"gitId":"Chen-Kuei"},"content":" Task newTask \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-17"},{"lineNumber":235,"author":{"gitId":"Chen-Kuei"},"content":" if (newTask \u003d\u003d null) {","lastModifiedDate":"2023-09-17"},{"lineNumber":236,"author":{"gitId":"Chen-Kuei"},"content":" return \"Please describe your event! \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":237,"author":{"gitId":"Chen-Kuei"},"content":" \"(format: event \u003ctask\u003e /from \u003ctime\u003e /to \u003ctime\u003e \\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":238,"author":{"gitId":"Chen-Kuei"},"content":" \"(indicate both your time like: 2023-06-12 1400)\";","lastModifiedDate":"2023-09-20"},{"lineNumber":239,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":240,"author":{"gitId":"Chen-Kuei"},"content":" tasks.addTask(newTask);","lastModifiedDate":"2023-09-17"},{"lineNumber":241,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":242,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskAdded(newTask, tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":243,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":244,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":245,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":246,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027delete\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":247,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":248,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":249,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":250,"author":{"gitId":"Chen-Kuei"},"content":" * @param storage The Storage object for saving tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":251,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":252,"author":{"gitId":"Chen-Kuei"},"content":" public String handleDeleteCommand(String[] parts, TaskList tasks, Storage storage) {","lastModifiedDate":"2023-09-17"},{"lineNumber":253,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":254,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: delete \u003cindex\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":255,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":256,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":257,"author":{"gitId":"Chen-Kuei"},"content":" int deletedTaskIndex \u003d Integer.parseInt(parts[1]) - 1;","lastModifiedDate":"2023-09-09"},{"lineNumber":258,"author":{"gitId":"Chen-Kuei"},"content":" tasks.deleteTask(deletedTaskIndex);","lastModifiedDate":"2023-09-09"},{"lineNumber":259,"author":{"gitId":"Chen-Kuei"},"content":" storage.saveTasks(tasks);","lastModifiedDate":"2023-09-09"},{"lineNumber":260,"author":{"gitId":"Chen-Kuei"},"content":" return showTaskDeleted(tasks.size());","lastModifiedDate":"2023-09-17"},{"lineNumber":261,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-17"},{"lineNumber":262,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-17"},{"lineNumber":263,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-17"},{"lineNumber":264,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027find\u0027 command.","lastModifiedDate":"2023-09-17"},{"lineNumber":265,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-17"},{"lineNumber":266,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-17"},{"lineNumber":267,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-17"},{"lineNumber":268,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-17"},{"lineNumber":269,"author":{"gitId":"Chen-Kuei"},"content":" public String handleFindCommand(String[] parts, TaskList tasks) {","lastModifiedDate":"2023-09-17"},{"lineNumber":270,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-09"},{"lineNumber":271,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: find \u003ckeyword\u003e\";","lastModifiedDate":"2023-09-20"},{"lineNumber":272,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":273,"author":{"gitId":"Chen-Kuei"},"content":" return showFindCommand(parts[1], tasks);","lastModifiedDate":"2023-09-17"},{"lineNumber":274,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":275,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":276,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":277,"author":{"gitId":"Chen-Kuei"},"content":" * Handles the \u0027update\u0027 command.","lastModifiedDate":"2023-09-20"},{"lineNumber":278,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":279,"author":{"gitId":"Chen-Kuei"},"content":" * @param parts An array containing command parts.","lastModifiedDate":"2023-09-20"},{"lineNumber":280,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":281,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":282,"author":{"gitId":"Chen-Kuei"},"content":" public String handleUpdateCommand(String[] parts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":283,"author":{"gitId":"Chen-Kuei"},"content":" if (parts.length \u003d\u003d 1) {","lastModifiedDate":"2023-09-20"},{"lineNumber":284,"author":{"gitId":"Chen-Kuei"},"content":" return \"pls enter: update \u003cindex\u003e \u003c/parts\u003e \u003c/new_info\u003e\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":285,"author":{"gitId":"Chen-Kuei"},"content":" \"(eg: update 2 /descr /have dinner)\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":286,"author":{"gitId":"Chen-Kuei"},"content":" \"\\nRef. for \u003c/parts\u003e:\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":287,"author":{"gitId":"Chen-Kuei"},"content":" \"1./descr: for all types of task.\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":288,"author":{"gitId":"Chen-Kuei"},"content":" \"2./time: for \u0027Deadline\u0027 only.\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":289,"author":{"gitId":"Chen-Kuei"},"content":" \"3./start_time, /end_time: for \u0027Event\u0027 only.\";","lastModifiedDate":"2023-09-20"},{"lineNumber":290,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":291,"author":{"gitId":"Chen-Kuei"},"content":" String[] updateParts \u003d parts[1].split(\" /\");","lastModifiedDate":"2023-09-20"},{"lineNumber":292,"author":{"gitId":"Chen-Kuei"},"content":" String updateType \u003d updateParts[1].toLowerCase();","lastModifiedDate":"2023-09-20"},{"lineNumber":293,"author":{"gitId":"Chen-Kuei"},"content":" String output;","lastModifiedDate":"2023-09-23"},{"lineNumber":294,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":295,"author":{"gitId":"Chen-Kuei"},"content":" switch(updateType) {","lastModifiedDate":"2023-09-20"},{"lineNumber":296,"author":{"gitId":"Chen-Kuei"},"content":" case \"descr\":","lastModifiedDate":"2023-09-20"},{"lineNumber":297,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateDescr(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":298,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":299,"author":{"gitId":"Chen-Kuei"},"content":" case \"time\":","lastModifiedDate":"2023-09-20"},{"lineNumber":300,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateTime(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":301,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":302,"author":{"gitId":"Chen-Kuei"},"content":" case \"start_time\":","lastModifiedDate":"2023-09-20"},{"lineNumber":303,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateStartTime(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":304,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":305,"author":{"gitId":"Chen-Kuei"},"content":" case \"end_time\":","lastModifiedDate":"2023-09-20"},{"lineNumber":306,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d updateEndTime(updateParts, tasks);","lastModifiedDate":"2023-09-20"},{"lineNumber":307,"author":{"gitId":"Chen-Kuei"},"content":" break;","lastModifiedDate":"2023-09-20"},{"lineNumber":308,"author":{"gitId":"Chen-Kuei"},"content":" default:","lastModifiedDate":"2023-09-20"},{"lineNumber":309,"author":{"gitId":"Chen-Kuei"},"content":" output \u003d showError(\"sry... idk what u want to update.\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":310,"author":{"gitId":"Chen-Kuei"},"content":" \"u can type \u0027update\u0027 for more info!\");","lastModifiedDate":"2023-09-20"},{"lineNumber":311,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":312,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-20"},{"lineNumber":313,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":314,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":315,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":316,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the description of the task.","lastModifiedDate":"2023-09-20"},{"lineNumber":317,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":318,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":319,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":320,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":321,"author":{"gitId":"Chen-Kuei"},"content":" public String updateDescr(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":322,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3 ) {","lastModifiedDate":"2023-09-20"},{"lineNumber":323,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and description!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":324,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":325,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":326,"author":{"gitId":"Chen-Kuei"},"content":" String description \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":327,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":328,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":329,"author":{"gitId":"Chen-Kuei"},"content":" task.updateDescription(description);","lastModifiedDate":"2023-09-20"},{"lineNumber":330,"author":{"gitId":"Chen-Kuei"},"content":" return \"Great, I\u0027ve updated task \" + (index + 1) + \" !!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":331,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":332,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":333,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":334,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the time of a Deadline.","lastModifiedDate":"2023-09-20"},{"lineNumber":335,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":336,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":337,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks A TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":338,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":339,"author":{"gitId":"Chen-Kuei"},"content":" public String updateTime(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":340,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3 ) {","lastModifiedDate":"2023-09-20"},{"lineNumber":341,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and time!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":342,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":343,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":344,"author":{"gitId":"Chen-Kuei"},"content":" String time \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":345,"author":{"gitId":"Chen-Kuei"},"content":" Deadline task \u003d (Deadline)tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":346,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":347,"author":{"gitId":"Chen-Kuei"},"content":" task.updateTime(time);","lastModifiedDate":"2023-09-20"},{"lineNumber":348,"author":{"gitId":"Chen-Kuei"},"content":" return \"woohoo~~ the time of task \" + (index + 1) + \" has been updated!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":349,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":350,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":351,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":352,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the start time of an Event.","lastModifiedDate":"2023-09-23"},{"lineNumber":353,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":354,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing the update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":355,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks A TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":356,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":357,"author":{"gitId":"Chen-Kuei"},"content":" public String updateStartTime(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":358,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3) {","lastModifiedDate":"2023-09-20"},{"lineNumber":359,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and time !!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":360,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":361,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":362,"author":{"gitId":"Chen-Kuei"},"content":" String startTime \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":363,"author":{"gitId":"Chen-Kuei"},"content":" Event task \u003d (Event)tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":364,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":365,"author":{"gitId":"Chen-Kuei"},"content":" task.updateStartTime(startTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":366,"author":{"gitId":"Chen-Kuei"},"content":" return \"nice! task \" + (index + 1) + \" has new start time now!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":367,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":368,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":369,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-20"},{"lineNumber":370,"author":{"gitId":"Chen-Kuei"},"content":" * Updates the end time of an Event.","lastModifiedDate":"2023-09-23"},{"lineNumber":371,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-20"},{"lineNumber":372,"author":{"gitId":"Chen-Kuei"},"content":" * @param updateParts An array containing the update command.","lastModifiedDate":"2023-09-20"},{"lineNumber":373,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks A TaskList containing tasks.","lastModifiedDate":"2023-09-20"},{"lineNumber":374,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-20"},{"lineNumber":375,"author":{"gitId":"Chen-Kuei"},"content":" public String updateEndTime(String[] updateParts, TaskList tasks) {","lastModifiedDate":"2023-09-20"},{"lineNumber":376,"author":{"gitId":"Chen-Kuei"},"content":" if (updateParts.length \u003c 3) {","lastModifiedDate":"2023-09-20"},{"lineNumber":377,"author":{"gitId":"Chen-Kuei"},"content":" return \"Make sure you enter both index and time !!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":378,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":379,"author":{"gitId":"Chen-Kuei"},"content":" int index \u003d Integer.parseInt(updateParts[0]) - 1;","lastModifiedDate":"2023-09-20"},{"lineNumber":380,"author":{"gitId":"Chen-Kuei"},"content":" String endTime \u003d updateParts[2];","lastModifiedDate":"2023-09-20"},{"lineNumber":381,"author":{"gitId":"Chen-Kuei"},"content":" Event task \u003d (Event)tasks.getTask(index);","lastModifiedDate":"2023-09-20"},{"lineNumber":382,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":383,"author":{"gitId":"Chen-Kuei"},"content":" task.updateEndTime(endTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":384,"author":{"gitId":"Chen-Kuei"},"content":" return \"nice! task \" + (index + 1) + \" has new end time now!\";","lastModifiedDate":"2023-09-20"},{"lineNumber":385,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":386,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":387,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":388,"author":{"gitId":"Chen-Kuei"},"content":" * Displays an error message.","lastModifiedDate":"2023-09-09"},{"lineNumber":389,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":390,"author":{"gitId":"Chen-Kuei"},"content":" * @param errorCommand The error message.","lastModifiedDate":"2023-09-09"},{"lineNumber":391,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":392,"author":{"gitId":"Chen-Kuei"},"content":" public String showError(String errorCommand) {","lastModifiedDate":"2023-09-17"},{"lineNumber":393,"author":{"gitId":"Chen-Kuei"},"content":" return errorCommand;","lastModifiedDate":"2023-09-17"},{"lineNumber":394,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":395,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":396,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":397,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming the addition of a task.","lastModifiedDate":"2023-09-09"},{"lineNumber":398,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":399,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task that we added.","lastModifiedDate":"2023-09-09"},{"lineNumber":400,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskCount The current number of tasks in the list.","lastModifiedDate":"2023-09-09"},{"lineNumber":401,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":402,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskAdded (Task task, int taskCount) {","lastModifiedDate":"2023-09-17"},{"lineNumber":403,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"*ฅ^•ﻌ•^ฅ* ogei!! I\u0027ve added this task:\";","lastModifiedDate":"2023-09-20"},{"lineNumber":404,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n \" + task;","lastModifiedDate":"2023-09-17"},{"lineNumber":405,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\nNow you have \" + taskCount + \" tasks in the list! meow--\";","lastModifiedDate":"2023-09-20"},{"lineNumber":406,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":407,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":408,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":409,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":410,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming the deletion of a task.","lastModifiedDate":"2023-09-09"},{"lineNumber":411,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":412,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskCount The current number of tasks in the list.","lastModifiedDate":"2023-09-09"},{"lineNumber":413,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":414,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskDeleted (int taskCount) {","lastModifiedDate":"2023-09-17"},{"lineNumber":415,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"OK, I\u0027ve removed this task.\";","lastModifiedDate":"2023-09-17"},{"lineNumber":416,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\nNow you have \" + taskCount + \" tasks in the list.\";","lastModifiedDate":"2023-09-17"},{"lineNumber":417,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":418,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":419,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":420,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":421,"author":{"gitId":"Chen-Kuei"},"content":" * Displays the list of tasks.","lastModifiedDate":"2023-09-09"},{"lineNumber":422,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":423,"author":{"gitId":"Chen-Kuei"},"content":" * @param taskList The task list.","lastModifiedDate":"2023-09-09"},{"lineNumber":424,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":425,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskList (TaskList taskList) {","lastModifiedDate":"2023-09-17"},{"lineNumber":426,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Here are the tasks in your list:\";","lastModifiedDate":"2023-09-17"},{"lineNumber":427,"author":{"gitId":"Chen-Kuei"},"content":" for (int i \u003d 0; i \u003c taskList.size(); i++) {","lastModifiedDate":"2023-09-09"},{"lineNumber":428,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n\" + (i + 1) + \". \" + taskList.getTask(i);","lastModifiedDate":"2023-09-17"},{"lineNumber":429,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":430,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":431,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\nପ(๑•ᴗ•๑)ଓ ♡\";","lastModifiedDate":"2023-09-20"},{"lineNumber":432,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":433,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":434,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":435,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":436,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming that a task has been marked as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":437,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":438,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task that was marked as done.","lastModifiedDate":"2023-09-09"},{"lineNumber":439,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":440,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskMarkedAsDone (Task task) {","lastModifiedDate":"2023-09-17"},{"lineNumber":441,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Nice! I\u0027ve marked this task as done:\";","lastModifiedDate":"2023-09-17"},{"lineNumber":442,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n \" + task;","lastModifiedDate":"2023-09-17"},{"lineNumber":443,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":444,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":445,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":446,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":447,"author":{"gitId":"Chen-Kuei"},"content":" * Displays a message confirming that a task has been marked as not done.","lastModifiedDate":"2023-09-09"},{"lineNumber":448,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":449,"author":{"gitId":"Chen-Kuei"},"content":" * @param task The task that was marked as not done.","lastModifiedDate":"2023-09-09"},{"lineNumber":450,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":451,"author":{"gitId":"Chen-Kuei"},"content":" public String showTaskMarkedAsNotDone (Task task) {","lastModifiedDate":"2023-09-17"},{"lineNumber":452,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Noted, I\u0027ve marked this task as not done yet:\";","lastModifiedDate":"2023-09-17"},{"lineNumber":453,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n \" + task;","lastModifiedDate":"2023-09-17"},{"lineNumber":454,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":455,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":456,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":457,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":458,"author":{"gitId":"Chen-Kuei"},"content":" * Displays tasks tha match the keyword.","lastModifiedDate":"2023-09-09"},{"lineNumber":459,"author":{"gitId":"Chen-Kuei"},"content":" *","lastModifiedDate":"2023-09-09"},{"lineNumber":460,"author":{"gitId":"Chen-Kuei"},"content":" * @param keyword The keyword to search for the matching task.","lastModifiedDate":"2023-09-09"},{"lineNumber":461,"author":{"gitId":"Chen-Kuei"},"content":" * @param tasks The list of tasks to search within.","lastModifiedDate":"2023-09-09"},{"lineNumber":462,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":463,"author":{"gitId":"Chen-Kuei"},"content":" public String showFindCommand (String keyword, TaskList tasks) {","lastModifiedDate":"2023-09-17"},{"lineNumber":464,"author":{"gitId":"Chen-Kuei"},"content":" TaskList matchingTasks \u003d tasks.findTasksByKeyword(keyword);","lastModifiedDate":"2023-09-09"},{"lineNumber":465,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":466,"author":{"gitId":"Chen-Kuei"},"content":" String output \u003d \"Here are the matching tasks: \";","lastModifiedDate":"2023-09-17"},{"lineNumber":467,"author":{"gitId":"Chen-Kuei"},"content":" for (int i \u003d 0; i \u003c matchingTasks.size(); i++) {","lastModifiedDate":"2023-09-09"},{"lineNumber":468,"author":{"gitId":"Chen-Kuei"},"content":" output +\u003d \"\\n\" + (i + 1) + \".\" + matchingTasks.getTask(i);","lastModifiedDate":"2023-09-17"},{"lineNumber":469,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":470,"author":{"gitId":"Chen-Kuei"},"content":" return output;","lastModifiedDate":"2023-09-17"},{"lineNumber":471,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":472,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":473,"author":{"gitId":"Chen-Kuei"},"content":" /**","lastModifiedDate":"2023-09-09"},{"lineNumber":474,"author":{"gitId":"Chen-Kuei"},"content":" * Displays an exit message.","lastModifiedDate":"2023-09-09"},{"lineNumber":475,"author":{"gitId":"Chen-Kuei"},"content":" */","lastModifiedDate":"2023-09-09"},{"lineNumber":476,"author":{"gitId":"Chen-Kuei"},"content":" public String showExit() {","lastModifiedDate":"2023-09-17"},{"lineNumber":477,"author":{"gitId":"Chen-Kuei"},"content":" return \"Bye. Have a great day!\";","lastModifiedDate":"2023-09-17"},{"lineNumber":478,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":479,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":479}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" style\u003d\"-fx-border-color: #53301b; -fx-border-radius: 15; -fx-border-width: 0.5;\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" \u003cLabel fx:id\u003d\"dialog\" style\u003d\"-fx-background-color: pink; -fx-background-radius: 10;\" text\u003d\"Label\" textFill\u003d\"#53301b\" wrapText\u003d\"true\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" \u003cFont name\u003d\"HGSoeiKakupoptai\" size\u003d\"12.0\" /\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/font\u003e\u003c/Label\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":20}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":"\u003c?import javafx.scene.text.Font?\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"duke.MainWindow\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" \u003cLabel fx:id\u003d\"welcomeLabel\" style\u003d\"-fx-font-size: 14pt;\" /\u003e","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"324.0\" style\u003d\"-fx-background-color: #d8c3ab;\" AnchorPane.bottomAnchor\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" \u003cFont name\u003d\"HGSoeiKakupoptai\" size\u003d\"12.0\" /\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/TextField\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"324.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" textFill\u003d\"#53301b\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":" \u003cfont\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" \u003cFont name\u003d\"HGSoeiKakupoptai\" size\u003d\"14.0\" /\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/font\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/Button\u003e","lastModifiedDate":"2023-09-21"},{"lineNumber":25,"author":{"gitId":"Chen-Kuei"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" style\u003d\"-fx-background-color: grey; -fx-background-radius: 20;\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":26,"author":{"gitId":"Chen-Kuei"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"Chen-Kuei"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"558.0\" prefWidth\u003d\"386.0\" style\u003d\"-fx-background-color: #f1e3c1; -fx-region-border: red;\" /\u003e","lastModifiedDate":"2023-09-17"},{"lineNumber":28,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":29,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":30,"author":{"gitId":"Chen-Kuei"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-11"},{"lineNumber":31,"author":{"gitId":"Chen-Kuei"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"Chen-Kuei":31}},{"path":"src/test/java/duke/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import org.junit.jupiter.api.Assertions;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertNull;","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":"public class ParserTest {","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" public void testParseEvent() {","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":" String userCommand \u003d \"event Project meeting /from 2023-09-10 1800 /to 2023-09-10 2100\";","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" Task task \u003d Parser.parse(userCommand);","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" assertTrue(task instanceof Event);","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" Assertions.assertEquals(\"Project meeting\", ((Event) task).description);","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":17}},{"path":"src/test/java/duke/TodoTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"package duke;","lastModifiedDate":"2023-09-09"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-09"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-09"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"public class TodoTest {","lastModifiedDate":"2023-09-09"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":8,"author":{"gitId":"Chen-Kuei"},"content":" public void dummyTest(){","lastModifiedDate":"2023-09-09"},{"lineNumber":9,"author":{"gitId":"Chen-Kuei"},"content":" assertEquals(2, 2);","lastModifiedDate":"2023-09-09"},{"lineNumber":10,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":11,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":12,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":13,"author":{"gitId":"Chen-Kuei"},"content":" public void anotherDummyTest(){","lastModifiedDate":"2023-09-09"},{"lineNumber":14,"author":{"gitId":"Chen-Kuei"},"content":" assertEquals(4, 4);","lastModifiedDate":"2023-09-09"},{"lineNumber":15,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":16,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":17,"author":{"gitId":"Chen-Kuei"},"content":" @Test","lastModifiedDate":"2023-09-09"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":" public void testToDataString() {","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"Chen-Kuei"},"content":" Todo todo \u003d new Todo(\"Finish iP soon!\");","lastModifiedDate":"2023-09-09"},{"lineNumber":20,"author":{"gitId":"Chen-Kuei"},"content":" String dataString \u003d todo.toDataString();","lastModifiedDate":"2023-09-09"},{"lineNumber":21,"author":{"gitId":"Chen-Kuei"},"content":"","lastModifiedDate":"2023-09-09"},{"lineNumber":22,"author":{"gitId":"Chen-Kuei"},"content":" assertEquals(\"TODO | Finish iP soon!\", dataString);","lastModifiedDate":"2023-09-09"},{"lineNumber":23,"author":{"gitId":"Chen-Kuei"},"content":" }","lastModifiedDate":"2023-09-09"},{"lineNumber":24,"author":{"gitId":"Chen-Kuei"},"content":"}","lastModifiedDate":"2023-09-09"}],"authorContributionMap":{"Chen-Kuei":24}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"Chen-Kuei"},"content":"todo Buy groceries","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"Chen-Kuei"},"content":"deadline Finish report /by 2023-12-15","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"Chen-Kuei"},"content":"event Team meeting /from 2023-12-20 14:00 /to 2023-12-20 15:30","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"Chen-Kuei"},"content":"list","lastModifiedDate":"2023-09-07"},{"lineNumber":5,"author":{"gitId":"Chen-Kuei"},"content":"mark 1","lastModifiedDate":"2023-09-07"},{"lineNumber":6,"author":{"gitId":"Chen-Kuei"},"content":"list","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"Chen-Kuei"},"content":"bye","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"Chen-Kuei":7}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"Chen-Kuei"},"content":"java -classpath ..\\bin duke.Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-09-09"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"Chen-Kuei":1,"-":20}}] diff --git a/Chen-Kuei_ip_master/commits.json b/Chen-Kuei_ip_master/commits.json index d5071f04..8b3baa0f 100644 --- a/Chen-Kuei_ip_master/commits.json +++ b/Chen-Kuei_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"Chen-Kuei":[{"date":"2023-09-03","commitResults":[{"hash":"827584cadd13fbb2a8bd4b71af278c540b954c35","isMergeCommit":false,"messageTitle":".gitignore: Fix ACTUAL.txt -\u003e ACTUAL.TXT (#73)","messageBody":"text-ui-test/runtest.bat|sh scripts generate a file ACTUAL.TXT.\nHowever, .gitignore uses ACTUAL.txt, which means the generated\nfile will not be ignored by Git on non-Windows OS.\n\nLet\u0027s update .gitignore as ACTUAL.txt -\u003e ACTUAL.TXT\n","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":6}}},{"hash":"a811c91cdb0a07f85ba12c565fff9720f0336950","isMergeCommit":false,"messageTitle":"Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":1}}},{"hash":"1df1cc26d27ad7e4a1673d1dbbfd1a51e06afcef","isMergeCommit":false,"messageTitle":"Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":7}}},{"hash":"d8a0c189ca52ffcf8dcbb34b117bd947b5cf08b4","isMergeCommit":false,"messageTitle":"Mark As Done","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":60,"deletions":6}}},{"hash":"5a6ac4c4271dc9ec192878e67868527c1c0e0bfd","isMergeCommit":false,"messageTitle":"Revert \"Mark As Done\"","messageBody":"This reverts commit d8a0c189ca52ffcf8dcbb34b117bd947b5cf08b4.\n","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":60}}},{"hash":"9db4c919b029ca816cb79564da08d1b7b2be8c85","isMergeCommit":false,"messageTitle":"Mark As Done","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":57,"deletions":6}}},{"hash":"f6309a6a39962d15323a1573eba36283e5aee158","isMergeCommit":false,"messageTitle":"ToDos, Events, Deadlines","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":74,"deletions":3}}},{"hash":"59487b8d91bb9e6b12ff379adec6b7bc40fbab0e","isMergeCommit":false,"messageTitle":"Automated Text UI Testing","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":7,"deletions":0}}}]},{"date":"2023-09-07","commitResults":[{"hash":"965afecee03111ac72567184e4a3182a9588e7da","isMergeCommit":false,"messageTitle":"Revert \"Automated Text UI Testing\"","messageBody":"This reverts commit 59487b8d91bb9e6b12ff379adec6b7bc40fbab0e.\n","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":7}}},{"hash":"b3a31573fef4f9c597c6f763a8cbdad3b7d2b33a","isMergeCommit":false,"messageTitle":"Revert \"Revert \"Automated Text UI Testing\"\"","messageBody":"This reverts commit 965afecee03111ac72567184e4a3182a9588e7da.\n","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":7,"deletions":0}}},{"hash":"6754850f9a250ef34efd3d89a8900a789b268630","isMergeCommit":false,"messageTitle":"Handle Errors","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":4}}}]},{"date":"2023-09-08","commitResults":[{"hash":"c8d0f15ad225d8c8ca48ddf5c7b0b5d44e542c6a","isMergeCommit":true,"messageTitle":"Merge commit \u00276754850f9a250ef34efd3d89a8900a789b268630\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"0f54ab152fee5155a53be65c2f1f1dec8eb8c452","isMergeCommit":false,"messageTitle":"Delete","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":13}}},{"hash":"1796d07c4ae15935bbd6729682efa1ca014152bd","isMergeCommit":false,"messageTitle":"Save","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"java":{"insertions":88,"deletions":3}}},{"hash":"7722ebf4df2cc2fcd9aa2a8acbfcd2b2845a7d37","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-09","commitResults":[{"hash":"3f0376dd67a8ef6d75625d0e02a62cd00aa0cb0d","isMergeCommit":false,"messageTitle":"Dates and Times","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":4},"java":{"insertions":90,"deletions":17}}},{"hash":"cefa3b102ed1ee60497e0446b88e3b8258691560","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}},{"hash":"590c044924ae22069fd9a2c239c59ed9155190ab","isMergeCommit":false,"messageTitle":"OOP(Ui, TaskList, Parser, Storage)","messageBody":"","tags":["A-MoreOOP","A-JUnit"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3},"java":{"insertions":522,"deletions":232}}},{"hash":"0947831e33f31aab0387c56c2f06ee35896e583d","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into add-gradle-support","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"3237bca2c6042962d8235b0dc52dc3c86be71904","isMergeCommit":false,"messageTitle":"Add JUnit tests","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":0}}},{"hash":"25bcabb3e1f2b90c180fc4df25ce71d07f3faa54","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"ef4a344e4a0eb710099a9b67a6fab9ce82e95bdd","isMergeCommit":false,"messageTitle":"Divide classes into packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":14},"bat":{"insertions":1,"deletions":1},"md":{"insertions":2,"deletions":2}}},{"hash":"b71a7275477ec769068c5ba56687b50ee30805d4","isMergeCommit":false,"messageTitle":"Package the App as a JAR file","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}},{"hash":"9f5214a624e727f02bdb5ad7ff2e53fb534dd0be","isMergeCommit":false,"messageTitle":"Add JavaDoc comments","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":235,"deletions":0}}},{"hash":"83e9a4424bd23d8bb237dc191ededb1f11591fe0","isMergeCommit":false,"messageTitle":"Coding standard","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":29}}},{"hash":"eaea925be4909a13cac383715b94c8f16c791952","isMergeCommit":false,"messageTitle":"Revert \"Coding standard\"","messageBody":"This reverts commit 83e9a4424bd23d8bb237dc191ededb1f11591fe0.\n","fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":37}}},{"hash":"38fdfbf1bb9962f79d95f8f81fad43922c6116d3","isMergeCommit":false,"messageTitle":"Coding Standard","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":65,"deletions":32}}},{"hash":"c1aa9e66d158e09d5ce1111979206129c9c382f9","isMergeCommit":false,"messageTitle":"Find","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":39,"deletions":0}}},{"hash":"1c25a5cebfd30fff4a9287117505a04fb0224db7","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027 into branch-A-CodingStandard","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"bb976e0fff961694b104490bd338e2746cb8515c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Deadline.java\n#\tsrc/main/java/duke/Duke.java\n#\tsrc/main/java/duke/Event.java\n#\tsrc/main/java/duke/Parser.java\n#\tsrc/main/java/duke/Storage.java\n#\tsrc/main/java/duke/Task.java\n#\tsrc/main/java/duke/TaskList.java\n#\tsrc/main/java/duke/Todo.java\n#\tsrc/main/java/duke/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"a9e9748744a81e053edafac59330852323d2939e","isMergeCommit":false,"messageTitle":"Merge all branches","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":151}}}]},{"date":"2023-09-11","commitResults":[{"hash":"0f748d0014436e18b0eb13e5ccb34a52d2173fa8","isMergeCommit":false,"messageTitle":"Add a GUI to the chatbot","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"txt":{"insertions":1,"deletions":4},"fxml":{"insertions":36,"deletions":0},"java":{"insertions":367,"deletions":29}}},{"hash":"42b40d3fa79eb0f3724e83d8da30f8d3bc3cf794","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-10\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-13","commitResults":[{"hash":"b26692628f45aef028fdc965c1459028a0d1a8a9","isMergeCommit":false,"messageTitle":"use checkstyle with gradle","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":0}}},{"hash":"61fb949ea4b2413f3681b5be8032c48f3a9007c2","isMergeCommit":false,"messageTitle":"user assert feature","messageBody":"","tags":["A-Assertions"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":1}}},{"hash":"4780351c17edf16b01ba88765b97b6cc5d4bc0b0","isMergeCommit":false,"messageTitle":"Improve code quality","messageBody":"Removing redundant code in each java class and correcting the\nindentation for \u0027case\u0027 clauses improve the code quality.\n\nLet\u0027s remove the indentation of \u0027case\u0027 clauses.\n","tags":["A-FullCommitMessage","A-CodeQuality"],"fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":1},"java":{"insertions":144,"deletions":392}}},{"hash":"46903c207b453e6411dc5a2737cbbd7954101ff7","isMergeCommit":true,"messageTitle":"Merge pull request #1 from Chen-Kuei/branch-assertions","messageBody":"use assert feature","fileTypesAndContributionMap":{}},{"hash":"28bf8f492f1cf0ebcaba420d83abfe5732c209d9","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-CodeQuality","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"29c8ec8cb9e155b519295484b2898b36ba72ebe6","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Chen-Kuei/branch-CodeQuality","messageBody":"Improve code quality","fileTypesAndContributionMap":{}},{"hash":"56c830fb8340c26790973a7591305ae810802a7a","isMergeCommit":false,"messageTitle":"improve code quality2.0","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":258}}},{"hash":"1e1f26ea6b08ac2d0718cf5fc2c4453016582b89","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-assertions\u0027 of https://github.com/Chen-Kuei/ip","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"50c2d235a6a84f13b370ff48fadc40eff6592cc4","isMergeCommit":false,"messageTitle":"improve code quality3.0","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":58,"deletions":58}}},{"hash":"e05baa0b3dd9ea0b790012fec40c1537c9e16c7c","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/Chen-Kuei/ip","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Duke.java\n","fileTypesAndContributionMap":{}}]},{"date":"2023-09-17","commitResults":[{"hash":"a3d776da88805d3f008a61365495d354c80bd6f8","isMergeCommit":false,"messageTitle":"update GUI design and improve code quality","messageBody":"","tags":["A-Personality","A-BetterGui"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3},"fxml":{"insertions":18,"deletions":8},"java":{"insertions":261,"deletions":222}}}]},{"date":"2023-09-20","commitResults":[{"hash":"130c3aad6fb136f69d792209afc29394800cc748","isMergeCommit":false,"messageTitle":"update GUI","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":2},"fxml":{"insertions":3,"deletions":0},"java":{"insertions":41,"deletions":8}}},{"hash":"7492a705d33b2f265e527e09377d95e2f1cd4f25","isMergeCommit":false,"messageTitle":"C-Update","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":153,"deletions":3}}},{"hash":"81d161997ca49950d898bf9f1e9767af732c5a8a","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-C-Update\u0027","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-21","commitResults":[{"hash":"a847eb96d89c2f34a71568715d13f8e32159d842","isMergeCommit":false,"messageTitle":"add a user guide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":2,"deletions":19},"md":{"insertions":28,"deletions":19}}},{"hash":"1a4ed7c6ebeb10c7195297f0bb892dee1e8029b6","isMergeCommit":false,"messageTitle":"update user guide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"4c09fcd327df138b7ba181e8b17f843ac0c6e403","isMergeCommit":false,"messageTitle":"add title bar of the window, update Ui.png","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":3},"fxml":{"insertions":5,"deletions":3},"java":{"insertions":1,"deletions":0}}}]},{"date":"2023-09-23","commitResults":[{"hash":"82ec07f9db9ea41465b8c379e8891622980ce97d","isMergeCommit":false,"messageTitle":"update user guide, update main window","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":3},"fxml":{"insertions":1,"deletions":1},"md":{"insertions":18,"deletions":0}}},{"hash":"d47e6b9d794ae6ce1e83f23d2fc916fb34d12f19","isMergeCommit":false,"messageTitle":"improve code quality(modify too-long methods)","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":19}}},{"hash":"a555e2d8859a985e660f84f5503984fc20c0d872","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CodeQuality\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"0913d026ebd2d1ea87ad8342cde40114172901a5","isMergeCommit":false,"messageTitle":"Correct the \u0027loadTasks\u0027 method, remove redundant code","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":46,"deletions":61}}},{"hash":"1a1623aed603da10c959e958e103bd8a13197137","isMergeCommit":false,"messageTitle":"create a jar file","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"gradle":{"insertions":14,"deletions":8}}}]}]},"authorFileTypeContributionMap":{"Chen-Kuei":{"java":1298,"md":43,"fxml":51,"sh":0,"bat":1,"gradle":34,"txt":9}},"authorContributionVariance":{"Chen-Kuei":99977.8},"authorDisplayNameMap":{"Chen-Kuei":"CS2103T-T14-1 CHEN..KUEI"}} +{"authorDailyContributionsMap":{"Chen-Kuei":[{"date":"2023-09-03","commitResults":[{"hash":"827584cadd13fbb2a8bd4b71af278c540b954c35","isMergeCommit":false,"messageTitle":".gitignore: Fix ACTUAL.txt -\u003e ACTUAL.TXT (#73)","messageBody":"text-ui-test/runtest.bat|sh scripts generate a file ACTUAL.TXT.\nHowever, .gitignore uses ACTUAL.txt, which means the generated\nfile will not be ignored by Git on non-Windows OS.\n\nLet\u0027s update .gitignore as ACTUAL.txt -\u003e ACTUAL.TXT\n","fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":6}}},{"hash":"a811c91cdb0a07f85ba12c565fff9720f0336950","isMergeCommit":false,"messageTitle":"Echo","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":1}}},{"hash":"1df1cc26d27ad7e4a1673d1dbbfd1a51e06afcef","isMergeCommit":false,"messageTitle":"Add, List","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":7}}},{"hash":"d8a0c189ca52ffcf8dcbb34b117bd947b5cf08b4","isMergeCommit":false,"messageTitle":"Mark As Done","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":60,"deletions":6}}},{"hash":"5a6ac4c4271dc9ec192878e67868527c1c0e0bfd","isMergeCommit":false,"messageTitle":"Revert \"Mark As Done\"","messageBody":"This reverts commit d8a0c189ca52ffcf8dcbb34b117bd947b5cf08b4.\n","fileTypesAndContributionMap":{"java":{"insertions":6,"deletions":60}}},{"hash":"9db4c919b029ca816cb79564da08d1b7b2be8c85","isMergeCommit":false,"messageTitle":"Mark As Done","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":57,"deletions":6}}},{"hash":"f6309a6a39962d15323a1573eba36283e5aee158","isMergeCommit":false,"messageTitle":"ToDos, Events, Deadlines","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":74,"deletions":3}}},{"hash":"59487b8d91bb9e6b12ff379adec6b7bc40fbab0e","isMergeCommit":false,"messageTitle":"Automated Text UI Testing","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":7,"deletions":0}}}]},{"date":"2023-09-07","commitResults":[{"hash":"965afecee03111ac72567184e4a3182a9588e7da","isMergeCommit":false,"messageTitle":"Revert \"Automated Text UI Testing\"","messageBody":"This reverts commit 59487b8d91bb9e6b12ff379adec6b7bc40fbab0e.\n","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":7}}},{"hash":"b3a31573fef4f9c597c6f763a8cbdad3b7d2b33a","isMergeCommit":false,"messageTitle":"Revert \"Revert \"Automated Text UI Testing\"\"","messageBody":"This reverts commit 965afecee03111ac72567184e4a3182a9588e7da.\n","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":7,"deletions":0}}},{"hash":"6754850f9a250ef34efd3d89a8900a789b268630","isMergeCommit":false,"messageTitle":"Handle Errors","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":4}}}]},{"date":"2023-09-08","commitResults":[{"hash":"c8d0f15ad225d8c8ca48ddf5c7b0b5d44e542c6a","isMergeCommit":true,"messageTitle":"Merge commit \u00276754850f9a250ef34efd3d89a8900a789b268630\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"0f54ab152fee5155a53be65c2f1f1dec8eb8c452","isMergeCommit":false,"messageTitle":"Delete","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":13}}},{"hash":"1796d07c4ae15935bbd6729682efa1ca014152bd","isMergeCommit":false,"messageTitle":"Save","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":5,"deletions":0},"java":{"insertions":88,"deletions":3}}},{"hash":"7722ebf4df2cc2fcd9aa2a8acbfcd2b2845a7d37","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-7\u0027","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-09","commitResults":[{"hash":"3f0376dd67a8ef6d75625d0e02a62cd00aa0cb0d","isMergeCommit":false,"messageTitle":"Dates and Times","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":4},"java":{"insertions":90,"deletions":17}}},{"hash":"cefa3b102ed1ee60497e0446b88e3b8258691560","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-8\u0027","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{}},{"hash":"590c044924ae22069fd9a2c239c59ed9155190ab","isMergeCommit":false,"messageTitle":"OOP(Ui, TaskList, Parser, Storage)","messageBody":"","tags":["A-MoreOOP","A-JUnit"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3},"java":{"insertions":522,"deletions":232}}},{"hash":"0947831e33f31aab0387c56c2f06ee35896e583d","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into add-gradle-support","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}},{"hash":"3237bca2c6042962d8235b0dc52dc3c86be71904","isMergeCommit":false,"messageTitle":"Add JUnit tests","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":0}}},{"hash":"25bcabb3e1f2b90c180fc4df25ce71d07f3faa54","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"ef4a344e4a0eb710099a9b67a6fab9ce82e95bdd","isMergeCommit":false,"messageTitle":"Divide classes into packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":14},"bat":{"insertions":1,"deletions":1},"md":{"insertions":2,"deletions":2}}},{"hash":"b71a7275477ec769068c5ba56687b50ee30805d4","isMergeCommit":false,"messageTitle":"Package the App as a JAR file","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}},{"hash":"9f5214a624e727f02bdb5ad7ff2e53fb534dd0be","isMergeCommit":false,"messageTitle":"Add JavaDoc comments","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":235,"deletions":0}}},{"hash":"83e9a4424bd23d8bb237dc191ededb1f11591fe0","isMergeCommit":false,"messageTitle":"Coding standard","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":37,"deletions":29}}},{"hash":"eaea925be4909a13cac383715b94c8f16c791952","isMergeCommit":false,"messageTitle":"Revert \"Coding standard\"","messageBody":"This reverts commit 83e9a4424bd23d8bb237dc191ededb1f11591fe0.\n","fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":37}}},{"hash":"38fdfbf1bb9962f79d95f8f81fad43922c6116d3","isMergeCommit":false,"messageTitle":"Coding Standard","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":65,"deletions":32}}},{"hash":"c1aa9e66d158e09d5ce1111979206129c9c382f9","isMergeCommit":false,"messageTitle":"Find","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":39,"deletions":0}}},{"hash":"1c25a5cebfd30fff4a9287117505a04fb0224db7","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-9\u0027 into branch-A-CodingStandard","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"bb976e0fff961694b104490bd338e2746cb8515c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-JavaDoc\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Deadline.java\n#\tsrc/main/java/duke/Duke.java\n#\tsrc/main/java/duke/Event.java\n#\tsrc/main/java/duke/Parser.java\n#\tsrc/main/java/duke/Storage.java\n#\tsrc/main/java/duke/Task.java\n#\tsrc/main/java/duke/TaskList.java\n#\tsrc/main/java/duke/Todo.java\n#\tsrc/main/java/duke/Ui.java\n","fileTypesAndContributionMap":{}},{"hash":"a9e9748744a81e053edafac59330852323d2939e","isMergeCommit":false,"messageTitle":"Merge all branches","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":151}}}]},{"date":"2023-09-11","commitResults":[{"hash":"0f748d0014436e18b0eb13e5ccb34a52d2173fa8","isMergeCommit":false,"messageTitle":"Add a GUI to the chatbot","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":15,"deletions":0},"txt":{"insertions":1,"deletions":4},"fxml":{"insertions":36,"deletions":0},"java":{"insertions":367,"deletions":29}}},{"hash":"42b40d3fa79eb0f3724e83d8da30f8d3bc3cf794","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-Level-10\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-13","commitResults":[{"hash":"b26692628f45aef028fdc965c1459028a0d1a8a9","isMergeCommit":false,"messageTitle":"use checkstyle with gradle","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":5,"deletions":0}}},{"hash":"61fb949ea4b2413f3681b5be8032c48f3a9007c2","isMergeCommit":false,"messageTitle":"user assert feature","messageBody":"","tags":["A-Assertions"],"fileTypesAndContributionMap":{"java":{"insertions":4,"deletions":1}}},{"hash":"4780351c17edf16b01ba88765b97b6cc5d4bc0b0","isMergeCommit":false,"messageTitle":"Improve code quality","messageBody":"Removing redundant code in each java class and correcting the\nindentation for \u0027case\u0027 clauses improve the code quality.\n\nLet\u0027s remove the indentation of \u0027case\u0027 clauses.\n","tags":["A-FullCommitMessage","A-CodeQuality"],"fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":1},"java":{"insertions":144,"deletions":392}}},{"hash":"46903c207b453e6411dc5a2737cbbd7954101ff7","isMergeCommit":true,"messageTitle":"Merge pull request #1 from Chen-Kuei/branch-assertions","messageBody":"use assert feature","fileTypesAndContributionMap":{}},{"hash":"28bf8f492f1cf0ebcaba420d83abfe5732c209d9","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into branch-CodeQuality","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"29c8ec8cb9e155b519295484b2898b36ba72ebe6","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Chen-Kuei/branch-CodeQuality","messageBody":"Improve code quality","fileTypesAndContributionMap":{}},{"hash":"56c830fb8340c26790973a7591305ae810802a7a","isMergeCommit":false,"messageTitle":"improve code quality2.0","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":258}}},{"hash":"1e1f26ea6b08ac2d0718cf5fc2c4453016582b89","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-assertions\u0027 of https://github.com/Chen-Kuei/ip","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"50c2d235a6a84f13b370ff48fadc40eff6592cc4","isMergeCommit":false,"messageTitle":"improve code quality3.0","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":58,"deletions":58}}},{"hash":"e05baa0b3dd9ea0b790012fec40c1537c9e16c7c","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/Chen-Kuei/ip","messageBody":"# Conflicts:\n#\tsrc/main/java/duke/Duke.java\n","fileTypesAndContributionMap":{}}]},{"date":"2023-09-17","commitResults":[{"hash":"a3d776da88805d3f008a61365495d354c80bd6f8","isMergeCommit":false,"messageTitle":"update GUI design and improve code quality","messageBody":"","tags":["A-Personality","A-BetterGui"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":3},"fxml":{"insertions":18,"deletions":8},"java":{"insertions":261,"deletions":222}}}]},{"date":"2023-09-20","commitResults":[{"hash":"130c3aad6fb136f69d792209afc29394800cc748","isMergeCommit":false,"messageTitle":"update GUI","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":2},"fxml":{"insertions":3,"deletions":0},"java":{"insertions":41,"deletions":8}}},{"hash":"7492a705d33b2f265e527e09377d95e2f1cd4f25","isMergeCommit":false,"messageTitle":"C-Update","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":153,"deletions":3}}},{"hash":"81d161997ca49950d898bf9f1e9767af732c5a8a","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-C-Update\u0027","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-21","commitResults":[{"hash":"a847eb96d89c2f34a71568715d13f8e32159d842","isMergeCommit":false,"messageTitle":"add a user guide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":2,"deletions":19},"md":{"insertions":28,"deletions":19}}},{"hash":"1a4ed7c6ebeb10c7195297f0bb892dee1e8029b6","isMergeCommit":false,"messageTitle":"update user guide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"4c09fcd327df138b7ba181e8b17f843ac0c6e403","isMergeCommit":false,"messageTitle":"add title bar of the window, update Ui.png","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":3,"deletions":3},"fxml":{"insertions":5,"deletions":3},"java":{"insertions":1,"deletions":0}}}]},{"date":"2023-09-23","commitResults":[{"hash":"82ec07f9db9ea41465b8c379e8891622980ce97d","isMergeCommit":false,"messageTitle":"update user guide, update main window","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":3},"fxml":{"insertions":1,"deletions":1},"md":{"insertions":18,"deletions":0}}},{"hash":"d47e6b9d794ae6ce1e83f23d2fc916fb34d12f19","isMergeCommit":false,"messageTitle":"improve code quality(modify too-long methods)","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":25,"deletions":19}}},{"hash":"a555e2d8859a985e660f84f5503984fc20c0d872","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-CodeQuality\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"0913d026ebd2d1ea87ad8342cde40114172901a5","isMergeCommit":false,"messageTitle":"Correct the \u0027loadTasks\u0027 method, remove redundant code","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":46,"deletions":61}}},{"hash":"1a1623aed603da10c959e958e103bd8a13197137","isMergeCommit":false,"messageTitle":"create a jar file","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"gradle":{"insertions":14,"deletions":8}}}]},{"date":"2023-09-27","commitResults":[{"hash":"af798d0f8d9a5ce4497d7cda9018a7eb57b8f534","isMergeCommit":false,"messageTitle":"Compile with Java 11 JDK","messageBody":"","tags":["A-Release2.0"],"fileTypesAndContributionMap":{"gradle":{"insertions":11,"deletions":10}}}]}]},"authorFileTypeContributionMap":{"Chen-Kuei":{"java":1298,"md":43,"fxml":51,"sh":0,"bat":1,"gradle":37,"txt":9}},"authorContributionVariance":{"Chen-Kuei":91466.11},"authorDisplayNameMap":{"Chen-Kuei":"CS2103T-T14-1 CHEN..KUEI"}} diff --git a/LuoZYi_ip_master/authorship.json b/LuoZYi_ip_master/authorship.json index 83226159..c4be5bf9 100644 --- a/LuoZYi_ip_master/authorship.json +++ b/LuoZYi_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"# Duke Chatbot User Guide","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"Duke is a command-line chatbot that allows you to manage your tasks easily. You can interact with Duke by typing various commands to add, list, mark, unmark, delete, and save tasks. Duke also stores your tasks in a file for persistence across sessions.","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"## Table of Contents","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"1. [Getting Started](#getting-started)","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"2. [Available Commands](#available-commands)","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"3. [Task Types](#task-types)","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"4. [Exiting Duke](#exiting-duke)","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"5. [Graphical User Interface (GUI)](#graphical-user-interface-gui)","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"6. [Troubleshooting](#troubleshooting)","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"7. [Additional Help](#additional-help)","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":"### Getting Started","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":"To start using Duke, follow these steps:","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":"1. Launch Duke by running the application.","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"2. Duke will greet you with a welcome message and a list of available commands.","lastModifiedDate":"2023-09-25"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":"3. You can type commands in the chat and press \"Send\" to interact with Duke.","lastModifiedDate":"2023-09-25"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":"### Available Commands","lastModifiedDate":"2023-09-25"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":"Duke supports the following commands:","lastModifiedDate":"2023-09-25"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":"- `bye`: Exits the chatbot and saves the task list to a file.","lastModifiedDate":"2023-09-25"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":"User: bye","lastModifiedDate":"2023-09-25"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":"Duke: Goodbye! Your tasks have been saved. See you next time.","lastModifiedDate":"2023-09-25"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":"- `list`: Lists all tasks in the current task list.","lastModifiedDate":"2023-09-25"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":"User: list","lastModifiedDate":"2023-09-25"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":"1. [T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":"2. [E][X] Attend webinar (from: 2023-09-25 14:00, to: 2023-09-25 16:00)","lastModifiedDate":"2023-09-25"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":"- `mark \u003ctask_id\u003e`: Marks a task as done by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"User: mark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":"Duke: Great job! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-25"},{"lineNumber":56,"author":{"gitId":"LuoZYi"},"content":"[T][X] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":57,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":58,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":60,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":61,"author":{"gitId":"LuoZYi"},"content":"- `unmark \u003ctask_id\u003e`: Unmarks a previously marked task.","lastModifiedDate":"2023-09-25"},{"lineNumber":62,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":63,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":64,"author":{"gitId":"LuoZYi"},"content":"User: unmark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":65,"author":{"gitId":"LuoZYi"},"content":"Duke: Task unmarked:","lastModifiedDate":"2023-09-25"},{"lineNumber":66,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":67,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":68,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":69,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":70,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":71,"author":{"gitId":"LuoZYi"},"content":"- `todo \u003cdescription\u003e`: Adds a to-do task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":72,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":73,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":74,"author":{"gitId":"LuoZYi"},"content":"User: todo Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":75,"author":{"gitId":"LuoZYi"},"content":"Duke: Got it! I\u0027ve added this task:","lastModifiedDate":"2023-09-25"},{"lineNumber":76,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":77,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":78,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":79,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":80,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":81,"author":{"gitId":"LuoZYi"},"content":"- `event \u003cdescription\u003e /from \u003cdatetime\u003e /to \u003cdatetime\u003e`: Adds an event task with a description, start date, and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":82,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":83,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":84,"author":{"gitId":"LuoZYi"},"content":"User: event Team meeting /from 2023-09-27 15:00 /to 2023-09-27 16:30","lastModifiedDate":"2023-09-25"},{"lineNumber":85,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":86,"author":{"gitId":"LuoZYi"},"content":"[E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":87,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":88,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":89,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":90,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":91,"author":{"gitId":"LuoZYi"},"content":"- `deadline \u003cdescription\u003e /by \u003cdatetime\u003e`: Adds a deadline task with a description and due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":92,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":93,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":94,"author":{"gitId":"LuoZYi"},"content":"User: deadline Submit report /by 2023-09-30 23:59","lastModifiedDate":"2023-09-25"},{"lineNumber":95,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":96,"author":{"gitId":"LuoZYi"},"content":"[D][ ] Submit report (by: 2023-09-30 23:59)","lastModifiedDate":"2023-09-25"},{"lineNumber":97,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":98,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":99,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":100,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":101,"author":{"gitId":"LuoZYi"},"content":"- `delete \u003ctask_id\u003e`: Deletes a task by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":102,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":103,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":104,"author":{"gitId":"LuoZYi"},"content":"User: delete 1","lastModifiedDate":"2023-09-25"},{"lineNumber":105,"author":{"gitId":"LuoZYi"},"content":"Duke: Task removed:","lastModifiedDate":"2023-09-25"},{"lineNumber":106,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":107,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":108,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":109,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":110,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":111,"author":{"gitId":"LuoZYi"},"content":"- `find \u003ckeyword\u003e`: Searches for tasks containing the specified keyword.","lastModifiedDate":"2023-09-25"},{"lineNumber":112,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":113,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":114,"author":{"gitId":"LuoZYi"},"content":"User: find meeting","lastModifiedDate":"2023-09-25"},{"lineNumber":115,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the matching tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":116,"author":{"gitId":"LuoZYi"},"content":"1. [E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":117,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":118,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":119,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":120,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":121,"author":{"gitId":"LuoZYi"},"content":"For example:","lastModifiedDate":"2023-09-25"},{"lineNumber":122,"author":{"gitId":"LuoZYi"},"content":"- To add a to-do task: `todo Buy groceries`","lastModifiedDate":"2023-09-25"},{"lineNumber":123,"author":{"gitId":"LuoZYi"},"content":"- To mark a task as done: `mark 1`","lastModifiedDate":"2023-09-25"},{"lineNumber":124,"author":{"gitId":"LuoZYi"},"content":"- To list all tasks: `list`","lastModifiedDate":"2023-09-25"},{"lineNumber":125,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":126,"author":{"gitId":"LuoZYi"},"content":"### Task Types","lastModifiedDate":"2023-09-25"},{"lineNumber":127,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":128,"author":{"gitId":"LuoZYi"},"content":"Duke supports different types of tasks:","lastModifiedDate":"2023-09-25"},{"lineNumber":129,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":130,"author":{"gitId":"LuoZYi"},"content":"- **To-Do**: A simple task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":131,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":132,"author":{"gitId":"LuoZYi"},"content":"- **Event**: A task with a description and a start date and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":133,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":134,"author":{"gitId":"LuoZYi"},"content":"- **Deadline**: A task with a description and a due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":135,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":136,"author":{"gitId":"LuoZYi"},"content":"### Exiting Duke","lastModifiedDate":"2023-09-25"},{"lineNumber":137,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":138,"author":{"gitId":"LuoZYi"},"content":"To exit Duke, simply type `bye` in the chat and press \"Send.\" Duke will save your task list to a file before closing.","lastModifiedDate":"2023-09-25"},{"lineNumber":139,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":140,"author":{"gitId":"LuoZYi"},"content":"### Graphical User Interface (GUI)","lastModifiedDate":"2023-09-25"},{"lineNumber":141,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":142,"author":{"gitId":"LuoZYi"},"content":"Duke also provides a graphical user interface (GUI) for a more interactive experience. The GUI allows you to type commands in a text field and displays Duke\u0027s responses in a chat-like interface.","lastModifiedDate":"2023-09-25"},{"lineNumber":143,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":144,"author":{"gitId":"LuoZYi"},"content":"### Troubleshooting","lastModifiedDate":"2023-09-25"},{"lineNumber":145,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":146,"author":{"gitId":"LuoZYi"},"content":"If you encounter any issues while using Duke, consider the following:","lastModifiedDate":"2023-09-25"},{"lineNumber":147,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":148,"author":{"gitId":"LuoZYi"},"content":"- Ensure you\u0027re using valid commands and following the correct syntax.","lastModifiedDate":"2023-09-25"},{"lineNumber":149,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":150,"author":{"gitId":"LuoZYi"},"content":"- If Duke encounters an error, it will provide an error message with details.","lastModifiedDate":"2023-09-25"},{"lineNumber":151,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":152,"author":{"gitId":"LuoZYi"},"content":"- If you need help with a specific command, type `help` to get a list of available commands and their usage.","lastModifiedDate":"2023-09-25"},{"lineNumber":153,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":154,"author":{"gitId":"LuoZYi"},"content":"### Additional Help","lastModifiedDate":"2023-09-25"},{"lineNumber":155,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":156,"author":{"gitId":"LuoZYi"},"content":"For additional help or questions, please refer to the chatbot\u0027s responses or type `help` for a list of available commands and their descriptions.","lastModifiedDate":"2023-09-25"},{"lineNumber":157,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":158,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":159,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":160,"author":{"gitId":"LuoZYi"},"content":"Enjoy using Duke to manage your tasks efficiently!","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":160}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"javafx {","lastModifiedDate":"2023-09-20"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":" version \u003d \u002717.0.2\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":" modules \u003d [\u0027javafx.controls\u0027, \u0027javafx.fxml\u0027]","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":" mainClass.set(\"duke.Launcher\")","lastModifiedDate":"2023-09-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2023-09-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-09-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":61,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":62,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":63,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2023-09-20"},{"lineNumber":64,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2023-09-20"},{"lineNumber":65,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"LuoZYi":24,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"# Duke Chatbot User Guide","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"Duke is a command-line chatbot that allows you to manage your tasks easily. You can interact with Duke by typing various commands to add, list, mark, unmark, delete, and save tasks. Duke also stores your tasks in a file for persistence across sessions.","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"## Table of Contents","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"1. [Getting Started](#getting-started)","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"2. [Available Commands](#available-commands)","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"3. [Task Types](#task-types)","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"4. [Exiting Duke](#exiting-duke)","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"5. [Graphical User Interface (GUI)](#graphical-user-interface-gui)","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"6. [Troubleshooting](#troubleshooting)","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"7. [Additional Help](#additional-help)","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":"### Getting Started","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":"To start using Duke, follow these steps:","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":"1. Launch Duke by running the application.","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"2. Duke will greet you with a welcome message and a list of available commands.","lastModifiedDate":"2023-09-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":"3. You can type commands in the chat and press \"Send\" to interact with Duke.","lastModifiedDate":"2023-09-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":"### Available Commands","lastModifiedDate":"2023-09-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":"Duke supports the following commands:","lastModifiedDate":"2023-09-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":"- `bye`: Exits the chatbot and saves the task list to a file.","lastModifiedDate":"2023-09-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":"User: bye","lastModifiedDate":"2023-09-25"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":"Duke: Goodbye! Your tasks have been saved. See you next time.","lastModifiedDate":"2023-09-25"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":"- `list`: Lists all tasks in the current task list.","lastModifiedDate":"2023-09-25"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":"User: list","lastModifiedDate":"2023-09-25"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":"1. [T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":"2. [E][X] Attend webinar (from: 2023-09-25 14:00, to: 2023-09-25 16:00)","lastModifiedDate":"2023-09-25"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":"- `mark \u003ctask_id\u003e`: Marks a task as done by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"User: mark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":"Duke: Great job! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-25"},{"lineNumber":56,"author":{"gitId":"LuoZYi"},"content":"[T][X] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":57,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":58,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":60,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":61,"author":{"gitId":"LuoZYi"},"content":"- `unmark \u003ctask_id\u003e`: Unmarks a previously marked task.","lastModifiedDate":"2023-09-25"},{"lineNumber":62,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":63,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":64,"author":{"gitId":"LuoZYi"},"content":"User: unmark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":65,"author":{"gitId":"LuoZYi"},"content":"Duke: Task unmarked:","lastModifiedDate":"2023-09-25"},{"lineNumber":66,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":67,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":68,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":69,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":70,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":71,"author":{"gitId":"LuoZYi"},"content":"- `todo \u003cdescription\u003e`: Adds a to-do task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":72,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":73,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":74,"author":{"gitId":"LuoZYi"},"content":"User: todo Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":75,"author":{"gitId":"LuoZYi"},"content":"Duke: Got it! I\u0027ve added this task:","lastModifiedDate":"2023-09-25"},{"lineNumber":76,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":77,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":78,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":79,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":80,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":81,"author":{"gitId":"LuoZYi"},"content":"- `event \u003cdescription\u003e /from \u003cdatetime\u003e /to \u003cdatetime\u003e`: Adds an event task with a description, start date, and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":82,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":83,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":84,"author":{"gitId":"LuoZYi"},"content":"User: event Team meeting /from 2023-09-27 15:00 /to 2023-09-27 16:30","lastModifiedDate":"2023-09-25"},{"lineNumber":85,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":86,"author":{"gitId":"LuoZYi"},"content":"[E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":87,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":88,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":89,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":90,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":91,"author":{"gitId":"LuoZYi"},"content":"- `deadline \u003cdescription\u003e /by \u003cdatetime\u003e`: Adds a deadline task with a description and due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":92,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":93,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":94,"author":{"gitId":"LuoZYi"},"content":"User: deadline Submit report /by 2023-09-30 23:59","lastModifiedDate":"2023-09-25"},{"lineNumber":95,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":96,"author":{"gitId":"LuoZYi"},"content":"[D][ ] Submit report (by: 2023-09-30 23:59)","lastModifiedDate":"2023-09-25"},{"lineNumber":97,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":98,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":99,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":100,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":101,"author":{"gitId":"LuoZYi"},"content":"- `delete \u003ctask_id\u003e`: Deletes a task by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":102,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":103,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":104,"author":{"gitId":"LuoZYi"},"content":"User: delete 1","lastModifiedDate":"2023-09-25"},{"lineNumber":105,"author":{"gitId":"LuoZYi"},"content":"Duke: Task removed:","lastModifiedDate":"2023-09-25"},{"lineNumber":106,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":107,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":108,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":109,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":110,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":111,"author":{"gitId":"LuoZYi"},"content":"- `find \u003ckeyword\u003e`: Searches for tasks containing the specified keyword.","lastModifiedDate":"2023-09-25"},{"lineNumber":112,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":113,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":114,"author":{"gitId":"LuoZYi"},"content":"User: find meeting","lastModifiedDate":"2023-09-25"},{"lineNumber":115,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the matching tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":116,"author":{"gitId":"LuoZYi"},"content":"1. [E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":117,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":118,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":119,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":120,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":121,"author":{"gitId":"LuoZYi"},"content":"For example:","lastModifiedDate":"2023-09-25"},{"lineNumber":122,"author":{"gitId":"LuoZYi"},"content":"- To add a to-do task: `todo Buy groceries`","lastModifiedDate":"2023-09-25"},{"lineNumber":123,"author":{"gitId":"LuoZYi"},"content":"- To mark a task as done: `mark 1`","lastModifiedDate":"2023-09-25"},{"lineNumber":124,"author":{"gitId":"LuoZYi"},"content":"- To list all tasks: `list`","lastModifiedDate":"2023-09-25"},{"lineNumber":125,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":126,"author":{"gitId":"LuoZYi"},"content":"### Task Types","lastModifiedDate":"2023-09-25"},{"lineNumber":127,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":128,"author":{"gitId":"LuoZYi"},"content":"Duke supports different types of tasks:","lastModifiedDate":"2023-09-25"},{"lineNumber":129,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":130,"author":{"gitId":"LuoZYi"},"content":"- **To-Do**: A simple task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":131,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":132,"author":{"gitId":"LuoZYi"},"content":"- **Event**: A task with a description and a start date and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":133,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":134,"author":{"gitId":"LuoZYi"},"content":"- **Deadline**: A task with a description and a due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":135,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":136,"author":{"gitId":"LuoZYi"},"content":"### Exiting Duke","lastModifiedDate":"2023-09-25"},{"lineNumber":137,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":138,"author":{"gitId":"LuoZYi"},"content":"To exit Duke, simply type `bye` in the chat and press \"Send.\" Duke will save your task list to a file before closing.","lastModifiedDate":"2023-09-25"},{"lineNumber":139,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":140,"author":{"gitId":"LuoZYi"},"content":"### Graphical User Interface (GUI)","lastModifiedDate":"2023-09-25"},{"lineNumber":141,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":142,"author":{"gitId":"LuoZYi"},"content":"Duke also provides a graphical user interface (GUI) for a more interactive experience. The GUI allows you to type commands in a text field and displays Duke\u0027s responses in a chat-like interface.","lastModifiedDate":"2023-09-25"},{"lineNumber":143,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":144,"author":{"gitId":"LuoZYi"},"content":"### Troubleshooting","lastModifiedDate":"2023-09-25"},{"lineNumber":145,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":146,"author":{"gitId":"LuoZYi"},"content":"If you encounter any issues while using Duke, consider the following:","lastModifiedDate":"2023-09-25"},{"lineNumber":147,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":148,"author":{"gitId":"LuoZYi"},"content":"- Ensure you\u0027re using valid commands and following the correct syntax.","lastModifiedDate":"2023-09-25"},{"lineNumber":149,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":150,"author":{"gitId":"LuoZYi"},"content":"- If Duke encounters an error, it will provide an error message with details.","lastModifiedDate":"2023-09-25"},{"lineNumber":151,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":152,"author":{"gitId":"LuoZYi"},"content":"- If you need help with a specific command, type `help` to get a list of available commands and their usage.","lastModifiedDate":"2023-09-25"},{"lineNumber":153,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":154,"author":{"gitId":"LuoZYi"},"content":"### Additional Help","lastModifiedDate":"2023-09-25"},{"lineNumber":155,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":156,"author":{"gitId":"LuoZYi"},"content":"For additional help or questions, please refer to the chatbot\u0027s responses or type `help` for a list of available commands and their descriptions.","lastModifiedDate":"2023-09-25"},{"lineNumber":157,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":158,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":159,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":160,"author":{"gitId":"LuoZYi"},"content":"Enjoy using Duke to manage your tasks efficiently!","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":147,"-":13}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"\u003cchildren\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":" \u003cScrollPane minHeight\u003d\"50.0\" prefHeight\u003d\"100.0\" maxHeight\u003d\"1.7976931348623157E308\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":"\u003c/children\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":"\u003cpadding\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":"\u003c/padding\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":23}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.effect.Glow?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"GUI.MainWindow\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" opacity\u003d\"0.5\" prefHeight\u003d\"43.0\" prefWidth\u003d\"324.0\" promptText\u003d\"Start converse!\" AnchorPane.bottomAnchor\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":" \u003ceffect\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" \u003cGlow /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":" \u003c/effect\u003e\u003c/TextField\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" \u003cButton fx:id\u003d\"sendButton\" defaultButton\u003d\"true\" layoutX\u003d\"324.0\" layoutY\u003d\"557.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"43.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" textFill\u003d\"#2849bf\" textOverrun\u003d\"CENTER_ELLIPSIS\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"413.0\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":23}},{"path":"src/test/java/duke/DukeTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"package duke;","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-20"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"import java.io.ByteArrayInputStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"import java.io.ByteArrayOutputStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"import java.io.InputStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.AfterEach;","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"public class DukeTest {","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" private final InputStream originalSystemIn \u003d System.in;","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":" private final PrintStream originalSystemOut \u003d System.out;","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" private ByteArrayInputStream testInput;","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":" private ByteArrayOutputStream testOutput;","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" @BeforeEach","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":" public void setUpStreams() {","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" // Redirect System.in and System.out to capture input and output","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" testOutput \u003d new ByteArrayOutputStream();","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":" System.setOut(new PrintStream(testOutput));","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":" // Prepare test input","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":" String userInput \u003d \"todo badminton\\n\"; // Replace with your test input","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":" testInput \u003d new ByteArrayInputStream(userInput.getBytes());","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":" System.setIn(testInput);","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":" @AfterEach","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":" public void restoreStreams() {","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" System.setIn(originalSystemIn);","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":" System.setOut(originalSystemOut);","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":" public void testDuke() {","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":" Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":" duke.run();","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":" String actualOutput \u003d testOutput.toString().trim();","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":" String expectedOutput \u003d \"Hello! I\u0027m Lakinta\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":" \"What can I do for you?\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":" \"Got it. I\u0027ve added this task:\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":" \"[T][ ] badminton\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":" \"Now you have 1 tasks in the list.\";","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":" String normalizedExpected \u003d normalizeString(expectedOutput);","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":" String normalizedActual \u003d normalizeString(actualOutput);","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":" assertEquals(normalizedExpected, normalizedActual);","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":" private String normalizeString(String input) {","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"LuoZYi"},"content":" return input.replaceAll(\"\\\\s+\", \" \").replaceAll(\"\\r\\n\", \"\\n\").trim();","lastModifiedDate":"2023-09-20"},{"lineNumber":57,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"LuoZYi"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"LuoZYi":59}},{"path":"src/test/java/duke/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"package duke;","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-20"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"public class TaskListTest {","lastModifiedDate":"2023-09-20"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":" public void testToDoToString() {","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":" ToDo todo \u003d new ToDo(\"Buy groceries\");","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [T][ ] Buy groceries\", todo.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":" public void testEventToString() {","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime from \u003d LocalDateTime.of(2023, 9, 15, 10, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime to \u003d LocalDateTime.of(2023, 9, 15, 12, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":" Event event \u003d new Event(\"Meeting\", from, to);","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [E][ ] Meeting (from: Sep 15 2023 10:00 to: Sep 15 2023 12:00)\", event.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":" public void testDeadlineToString() {","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime deadlineTime \u003d LocalDateTime.of(2023, 9, 30, 23, 59);","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":" Deadline deadline \u003d new Deadline(\"Submit report\", deadlineTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [D][ ] Submit report (by: Sep 30 2023 23:59)\", deadline.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":" public void testToDoMarkAsDone() {","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" ToDo todo \u003d new ToDo(\"Read a book\");","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":" todo.markAsDone();","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [T][X] Read a book\", todo.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":" public void testEventMarkAsDone() {","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime from \u003d LocalDateTime.of(2023, 9, 15, 10, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime to \u003d LocalDateTime.of(2023, 9, 15, 12, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":" Event event \u003d new Event(\"Meeting\", from, to);","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":" event.markAsDone();","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [E][X] Meeting (from: Sep 15 2023 10:00 to: Sep 15 2023 12:00)\", event.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":" public void testDeadlineMarkAsDone() {","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime deadlineTime \u003d LocalDateTime.of(2023, 9, 30, 23, 59);","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":" Deadline deadline \u003d new Deadline(\"Submit report\", deadlineTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":" deadline.markAsDone();","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [D][X] Submit report (by: Sep 30 2023 23:59)\", deadline.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"LuoZYi":55}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"todo eat breakfast","lastModifiedDate":"2023-08-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"deadline assignment /by tonight","lastModifiedDate":"2023-08-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"todo meet with friends","lastModifiedDate":"2023-08-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"list","lastModifiedDate":"2023-08-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"event play badminton /from Sunday 4pm /to 6pm","lastModifiedDate":"2023-08-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"mark 3","lastModifiedDate":"2023-08-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"mark 1","lastModifiedDate":"2023-08-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"unmark 3","lastModifiedDate":"2023-08-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"mark 4","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"todo study hard","lastModifiedDate":"2023-08-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"mark 5","lastModifiedDate":"2023-08-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"unmark 4","lastModifiedDate":"2023-08-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"mark 2","lastModifiedDate":"2023-08-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":"list","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"LuoZYi":14}},{"path":"data/duke.txt","fileType":"txt","isBinary":true,"lines":[],"authorContributionMap":{"LuoZYi":0}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"# Duke Chatbot User Guide","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"Duke is a command-line chatbot that allows you to manage your tasks easily. You can interact with Duke by typing various commands to add, list, mark, unmark, delete, and save tasks. Duke also stores your tasks in a file for persistence across sessions.","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"## Table of Contents","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"1. [Getting Started](#getting-started)","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"2. [Available Commands](#available-commands)","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"3. [Task Types](#task-types)","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"4. [Exiting Duke](#exiting-duke)","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"5. [Graphical User Interface (GUI)](#graphical-user-interface-gui)","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"6. [Troubleshooting](#troubleshooting)","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"7. [Additional Help](#additional-help)","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":"### Getting Started","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":"To start using Duke, follow these steps:","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":"1. Launch Duke by running the application.","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"2. Duke will greet you with a welcome message and a list of available commands.","lastModifiedDate":"2023-09-25"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":"3. You can type commands in the chat and press \"Send\" to interact with Duke.","lastModifiedDate":"2023-09-25"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":"### Available Commands","lastModifiedDate":"2023-09-25"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":"Duke supports the following commands:","lastModifiedDate":"2023-09-25"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":"- `bye`: Exits the chatbot and saves the task list to a file.","lastModifiedDate":"2023-09-25"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":"User: bye","lastModifiedDate":"2023-09-25"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":"Duke: Goodbye! Your tasks have been saved. See you next time.","lastModifiedDate":"2023-09-25"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":"- `list`: Lists all tasks in the current task list.","lastModifiedDate":"2023-09-25"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":"User: list","lastModifiedDate":"2023-09-25"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":"1. [T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":"2. [E][X] Attend webinar (from: 2023-09-25 14:00, to: 2023-09-25 16:00)","lastModifiedDate":"2023-09-25"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":"- `mark \u003ctask_id\u003e`: Marks a task as done by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"User: mark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":"Duke: Great job! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-25"},{"lineNumber":56,"author":{"gitId":"LuoZYi"},"content":"[T][X] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":57,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":58,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":60,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":61,"author":{"gitId":"LuoZYi"},"content":"- `unmark \u003ctask_id\u003e`: Unmarks a previously marked task.","lastModifiedDate":"2023-09-25"},{"lineNumber":62,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":63,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":64,"author":{"gitId":"LuoZYi"},"content":"User: unmark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":65,"author":{"gitId":"LuoZYi"},"content":"Duke: Task unmarked:","lastModifiedDate":"2023-09-25"},{"lineNumber":66,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":67,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":68,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":69,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":70,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":71,"author":{"gitId":"LuoZYi"},"content":"- `todo \u003cdescription\u003e`: Adds a to-do task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":72,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":73,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":74,"author":{"gitId":"LuoZYi"},"content":"User: todo Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":75,"author":{"gitId":"LuoZYi"},"content":"Duke: Got it! I\u0027ve added this task:","lastModifiedDate":"2023-09-25"},{"lineNumber":76,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":77,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":78,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":79,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":80,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":81,"author":{"gitId":"LuoZYi"},"content":"- `event \u003cdescription\u003e /from \u003cdatetime\u003e /to \u003cdatetime\u003e`: Adds an event task with a description, start date, and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":82,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":83,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":84,"author":{"gitId":"LuoZYi"},"content":"User: event Team meeting /from 2023-09-27 15:00 /to 2023-09-27 16:30","lastModifiedDate":"2023-09-25"},{"lineNumber":85,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":86,"author":{"gitId":"LuoZYi"},"content":"[E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":87,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":88,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":89,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":90,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":91,"author":{"gitId":"LuoZYi"},"content":"- `deadline \u003cdescription\u003e /by \u003cdatetime\u003e`: Adds a deadline task with a description and due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":92,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":93,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":94,"author":{"gitId":"LuoZYi"},"content":"User: deadline Submit report /by 2023-09-30 23:59","lastModifiedDate":"2023-09-25"},{"lineNumber":95,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":96,"author":{"gitId":"LuoZYi"},"content":"[D][ ] Submit report (by: 2023-09-30 23:59)","lastModifiedDate":"2023-09-25"},{"lineNumber":97,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":98,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":99,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":100,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":101,"author":{"gitId":"LuoZYi"},"content":"- `delete \u003ctask_id\u003e`: Deletes a task by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":102,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":103,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":104,"author":{"gitId":"LuoZYi"},"content":"User: delete 1","lastModifiedDate":"2023-09-25"},{"lineNumber":105,"author":{"gitId":"LuoZYi"},"content":"Duke: Task removed:","lastModifiedDate":"2023-09-25"},{"lineNumber":106,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":107,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":108,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":109,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":110,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":111,"author":{"gitId":"LuoZYi"},"content":"- `find \u003ckeyword\u003e`: Searches for tasks containing the specified keyword.","lastModifiedDate":"2023-09-25"},{"lineNumber":112,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":113,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":114,"author":{"gitId":"LuoZYi"},"content":"User: find meeting","lastModifiedDate":"2023-09-25"},{"lineNumber":115,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the matching tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":116,"author":{"gitId":"LuoZYi"},"content":"1. [E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":117,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":118,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":119,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":120,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":121,"author":{"gitId":"LuoZYi"},"content":"For example:","lastModifiedDate":"2023-09-25"},{"lineNumber":122,"author":{"gitId":"LuoZYi"},"content":"- To add a to-do task: `todo Buy groceries`","lastModifiedDate":"2023-09-25"},{"lineNumber":123,"author":{"gitId":"LuoZYi"},"content":"- To mark a task as done: `mark 1`","lastModifiedDate":"2023-09-25"},{"lineNumber":124,"author":{"gitId":"LuoZYi"},"content":"- To list all tasks: `list`","lastModifiedDate":"2023-09-25"},{"lineNumber":125,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":126,"author":{"gitId":"LuoZYi"},"content":"### Task Types","lastModifiedDate":"2023-09-25"},{"lineNumber":127,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":128,"author":{"gitId":"LuoZYi"},"content":"Duke supports different types of tasks:","lastModifiedDate":"2023-09-25"},{"lineNumber":129,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":130,"author":{"gitId":"LuoZYi"},"content":"- **To-Do**: A simple task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":131,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":132,"author":{"gitId":"LuoZYi"},"content":"- **Event**: A task with a description and a start date and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":133,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":134,"author":{"gitId":"LuoZYi"},"content":"- **Deadline**: A task with a description and a due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":135,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":136,"author":{"gitId":"LuoZYi"},"content":"### Exiting Duke","lastModifiedDate":"2023-09-25"},{"lineNumber":137,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":138,"author":{"gitId":"LuoZYi"},"content":"To exit Duke, simply type `bye` in the chat and press \"Send.\" Duke will save your task list to a file before closing.","lastModifiedDate":"2023-09-25"},{"lineNumber":139,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":140,"author":{"gitId":"LuoZYi"},"content":"### Graphical User Interface (GUI)","lastModifiedDate":"2023-09-25"},{"lineNumber":141,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":142,"author":{"gitId":"LuoZYi"},"content":"Duke also provides a graphical user interface (GUI) for a more interactive experience. The GUI allows you to type commands in a text field and displays Duke\u0027s responses in a chat-like interface.","lastModifiedDate":"2023-09-25"},{"lineNumber":143,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":144,"author":{"gitId":"LuoZYi"},"content":"### Troubleshooting","lastModifiedDate":"2023-09-25"},{"lineNumber":145,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":146,"author":{"gitId":"LuoZYi"},"content":"If you encounter any issues while using Duke, consider the following:","lastModifiedDate":"2023-09-25"},{"lineNumber":147,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":148,"author":{"gitId":"LuoZYi"},"content":"- Ensure you\u0027re using valid commands and following the correct syntax.","lastModifiedDate":"2023-09-25"},{"lineNumber":149,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":150,"author":{"gitId":"LuoZYi"},"content":"- If Duke encounters an error, it will provide an error message with details.","lastModifiedDate":"2023-09-25"},{"lineNumber":151,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":152,"author":{"gitId":"LuoZYi"},"content":"- If you need help with a specific command, type `help` to get a list of available commands and their usage.","lastModifiedDate":"2023-09-25"},{"lineNumber":153,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":154,"author":{"gitId":"LuoZYi"},"content":"### Additional Help","lastModifiedDate":"2023-09-25"},{"lineNumber":155,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":156,"author":{"gitId":"LuoZYi"},"content":"For additional help or questions, please refer to the chatbot\u0027s responses or type `help` for a list of available commands and their descriptions.","lastModifiedDate":"2023-09-25"},{"lineNumber":157,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":158,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":159,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":160,"author":{"gitId":"LuoZYi"},"content":"Enjoy using Duke to manage your tasks efficiently!","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":160}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":" id \u0027org.openjfx.javafxplugin\u0027 version \u00270.0.13\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"javafx {","lastModifiedDate":"2023-09-20"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":" version \u003d \u002717.0.2\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":" modules \u003d [\u0027javafx.controls\u0027, \u0027javafx.fxml\u0027]","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":" mainClass.set(\"duke.Duke\")","lastModifiedDate":"2023-09-27"},{"lineNumber":52,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-09-27"},{"lineNumber":56,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2023-09-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":60,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":61,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2023-09-20"},{"lineNumber":62,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"LuoZYi":22,"-":41}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"# Duke Chatbot User Guide","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"Duke is a command-line chatbot that allows you to manage your tasks easily. You can interact with Duke by typing various commands to add, list, mark, unmark, delete, and save tasks. Duke also stores your tasks in a file for persistence across sessions.","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"## Table of Contents","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"1. [Getting Started](#getting-started)","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"2. [Available Commands](#available-commands)","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"3. [Task Types](#task-types)","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"4. [Exiting Duke](#exiting-duke)","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"5. [Graphical User Interface (GUI)](#graphical-user-interface-gui)","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"6. [Troubleshooting](#troubleshooting)","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"7. [Additional Help](#additional-help)","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":"### Getting Started","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":"To start using Duke, follow these steps:","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":"1. Launch Duke by running the application.","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"2. Duke will greet you with a welcome message and a list of available commands.","lastModifiedDate":"2023-09-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":"3. You can type commands in the chat and press \"Send\" to interact with Duke.","lastModifiedDate":"2023-09-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":"### Available Commands","lastModifiedDate":"2023-09-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":"Duke supports the following commands:","lastModifiedDate":"2023-09-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":"- `bye`: Exits the chatbot and saves the task list to a file.","lastModifiedDate":"2023-09-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":"User: bye","lastModifiedDate":"2023-09-25"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":"Duke: Goodbye! Your tasks have been saved. See you next time.","lastModifiedDate":"2023-09-25"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":"- `list`: Lists all tasks in the current task list.","lastModifiedDate":"2023-09-25"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":"User: list","lastModifiedDate":"2023-09-25"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":"1. [T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":"2. [E][X] Attend webinar (from: 2023-09-25 14:00, to: 2023-09-25 16:00)","lastModifiedDate":"2023-09-25"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":"- `mark \u003ctask_id\u003e`: Marks a task as done by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"User: mark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":"Duke: Great job! I\u0027ve marked this task as done:","lastModifiedDate":"2023-09-25"},{"lineNumber":56,"author":{"gitId":"LuoZYi"},"content":"[T][X] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":57,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":58,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":60,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":61,"author":{"gitId":"LuoZYi"},"content":"- `unmark \u003ctask_id\u003e`: Unmarks a previously marked task.","lastModifiedDate":"2023-09-25"},{"lineNumber":62,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":63,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":64,"author":{"gitId":"LuoZYi"},"content":"User: unmark 1","lastModifiedDate":"2023-09-25"},{"lineNumber":65,"author":{"gitId":"LuoZYi"},"content":"Duke: Task unmarked:","lastModifiedDate":"2023-09-25"},{"lineNumber":66,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Buy groceries","lastModifiedDate":"2023-09-25"},{"lineNumber":67,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":68,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":69,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":70,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":71,"author":{"gitId":"LuoZYi"},"content":"- `todo \u003cdescription\u003e`: Adds a to-do task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":72,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":73,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":74,"author":{"gitId":"LuoZYi"},"content":"User: todo Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":75,"author":{"gitId":"LuoZYi"},"content":"Duke: Got it! I\u0027ve added this task:","lastModifiedDate":"2023-09-25"},{"lineNumber":76,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":77,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":78,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":79,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":80,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":81,"author":{"gitId":"LuoZYi"},"content":"- `event \u003cdescription\u003e /from \u003cdatetime\u003e /to \u003cdatetime\u003e`: Adds an event task with a description, start date, and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":82,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":83,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":84,"author":{"gitId":"LuoZYi"},"content":"User: event Team meeting /from 2023-09-27 15:00 /to 2023-09-27 16:30","lastModifiedDate":"2023-09-25"},{"lineNumber":85,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":86,"author":{"gitId":"LuoZYi"},"content":"[E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":87,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":88,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":89,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":90,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":91,"author":{"gitId":"LuoZYi"},"content":"- `deadline \u003cdescription\u003e /by \u003cdatetime\u003e`: Adds a deadline task with a description and due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":92,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":93,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":94,"author":{"gitId":"LuoZYi"},"content":"User: deadline Submit report /by 2023-09-30 23:59","lastModifiedDate":"2023-09-25"},{"lineNumber":95,"author":{"gitId":"LuoZYi"},"content":"Duke: Task added:","lastModifiedDate":"2023-09-25"},{"lineNumber":96,"author":{"gitId":"LuoZYi"},"content":"[D][ ] Submit report (by: 2023-09-30 23:59)","lastModifiedDate":"2023-09-25"},{"lineNumber":97,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":98,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":99,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":100,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":101,"author":{"gitId":"LuoZYi"},"content":"- `delete \u003ctask_id\u003e`: Deletes a task by its ID.","lastModifiedDate":"2023-09-25"},{"lineNumber":102,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":103,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":104,"author":{"gitId":"LuoZYi"},"content":"User: delete 1","lastModifiedDate":"2023-09-25"},{"lineNumber":105,"author":{"gitId":"LuoZYi"},"content":"Duke: Task removed:","lastModifiedDate":"2023-09-25"},{"lineNumber":106,"author":{"gitId":"LuoZYi"},"content":"[T][ ] Read a book","lastModifiedDate":"2023-09-25"},{"lineNumber":107,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":108,"author":{"gitId":"LuoZYi"},"content":"markdown","lastModifiedDate":"2023-09-25"},{"lineNumber":109,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":110,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":111,"author":{"gitId":"LuoZYi"},"content":"- `find \u003ckeyword\u003e`: Searches for tasks containing the specified keyword.","lastModifiedDate":"2023-09-25"},{"lineNumber":112,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":113,"author":{"gitId":"LuoZYi"},"content":"Example:","lastModifiedDate":"2023-09-25"},{"lineNumber":114,"author":{"gitId":"LuoZYi"},"content":"User: find meeting","lastModifiedDate":"2023-09-25"},{"lineNumber":115,"author":{"gitId":"LuoZYi"},"content":"Duke: Here are the matching tasks in your list:","lastModifiedDate":"2023-09-25"},{"lineNumber":116,"author":{"gitId":"LuoZYi"},"content":"1. [E][ ] Team meeting (from: 2023-09-27 15:00, to: 2023-09-27 16:30)","lastModifiedDate":"2023-09-25"},{"lineNumber":117,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":118,"author":{"gitId":"LuoZYi"},"content":"vbnet","lastModifiedDate":"2023-09-25"},{"lineNumber":119,"author":{"gitId":"LuoZYi"},"content":"Copy code","lastModifiedDate":"2023-09-25"},{"lineNumber":120,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":121,"author":{"gitId":"LuoZYi"},"content":"For example:","lastModifiedDate":"2023-09-25"},{"lineNumber":122,"author":{"gitId":"LuoZYi"},"content":"- To add a to-do task: `todo Buy groceries`","lastModifiedDate":"2023-09-25"},{"lineNumber":123,"author":{"gitId":"LuoZYi"},"content":"- To mark a task as done: `mark 1`","lastModifiedDate":"2023-09-25"},{"lineNumber":124,"author":{"gitId":"LuoZYi"},"content":"- To list all tasks: `list`","lastModifiedDate":"2023-09-25"},{"lineNumber":125,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":126,"author":{"gitId":"LuoZYi"},"content":"### Task Types","lastModifiedDate":"2023-09-25"},{"lineNumber":127,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":128,"author":{"gitId":"LuoZYi"},"content":"Duke supports different types of tasks:","lastModifiedDate":"2023-09-25"},{"lineNumber":129,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":130,"author":{"gitId":"LuoZYi"},"content":"- **To-Do**: A simple task with a description.","lastModifiedDate":"2023-09-25"},{"lineNumber":131,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":132,"author":{"gitId":"LuoZYi"},"content":"- **Event**: A task with a description and a start date and end date.","lastModifiedDate":"2023-09-25"},{"lineNumber":133,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":134,"author":{"gitId":"LuoZYi"},"content":"- **Deadline**: A task with a description and a due date.","lastModifiedDate":"2023-09-25"},{"lineNumber":135,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":136,"author":{"gitId":"LuoZYi"},"content":"### Exiting Duke","lastModifiedDate":"2023-09-25"},{"lineNumber":137,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":138,"author":{"gitId":"LuoZYi"},"content":"To exit Duke, simply type `bye` in the chat and press \"Send.\" Duke will save your task list to a file before closing.","lastModifiedDate":"2023-09-25"},{"lineNumber":139,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":140,"author":{"gitId":"LuoZYi"},"content":"### Graphical User Interface (GUI)","lastModifiedDate":"2023-09-25"},{"lineNumber":141,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":142,"author":{"gitId":"LuoZYi"},"content":"Duke also provides a graphical user interface (GUI) for a more interactive experience. The GUI allows you to type commands in a text field and displays Duke\u0027s responses in a chat-like interface.","lastModifiedDate":"2023-09-25"},{"lineNumber":143,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":144,"author":{"gitId":"LuoZYi"},"content":"### Troubleshooting","lastModifiedDate":"2023-09-25"},{"lineNumber":145,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":146,"author":{"gitId":"LuoZYi"},"content":"If you encounter any issues while using Duke, consider the following:","lastModifiedDate":"2023-09-25"},{"lineNumber":147,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":148,"author":{"gitId":"LuoZYi"},"content":"- Ensure you\u0027re using valid commands and following the correct syntax.","lastModifiedDate":"2023-09-25"},{"lineNumber":149,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":150,"author":{"gitId":"LuoZYi"},"content":"- If Duke encounters an error, it will provide an error message with details.","lastModifiedDate":"2023-09-25"},{"lineNumber":151,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":152,"author":{"gitId":"LuoZYi"},"content":"- If you need help with a specific command, type `help` to get a list of available commands and their usage.","lastModifiedDate":"2023-09-25"},{"lineNumber":153,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":154,"author":{"gitId":"LuoZYi"},"content":"### Additional Help","lastModifiedDate":"2023-09-25"},{"lineNumber":155,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":156,"author":{"gitId":"LuoZYi"},"content":"For additional help or questions, please refer to the chatbot\u0027s responses or type `help` for a list of available commands and their descriptions.","lastModifiedDate":"2023-09-25"},{"lineNumber":157,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":158,"author":{"gitId":"LuoZYi"},"content":"---","lastModifiedDate":"2023-09-25"},{"lineNumber":159,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":160,"author":{"gitId":"LuoZYi"},"content":"Enjoy using Duke to manage your tasks efficiently!","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":147,"-":13}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"\u003cchildren\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":" \u003cScrollPane minHeight\u003d\"50.0\" prefHeight\u003d\"100.0\" maxHeight\u003d\"1.7976931348623157E308\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":"\u003c/children\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":"\u003cpadding\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":"\u003c/padding\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":23}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.effect.Glow?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"400.0\" xmlns\u003d\"http://javafx.com/javafx/20.0.1\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"GUI.MainWindow\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" opacity\u003d\"0.5\" prefHeight\u003d\"43.0\" prefWidth\u003d\"324.0\" promptText\u003d\"Start converse!\" AnchorPane.bottomAnchor\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":" \u003ceffect\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" \u003cGlow /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":" \u003c/effect\u003e\u003c/TextField\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" \u003cButton fx:id\u003d\"sendButton\" defaultButton\u003d\"true\" layoutX\u003d\"324.0\" layoutY\u003d\"557.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"43.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" textFill\u003d\"#2849bf\" textOverrun\u003d\"CENTER_ELLIPSIS\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"400.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"413.0\" /\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-25"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-25"}],"authorContributionMap":{"LuoZYi":23}},{"path":"src/test/java/duke/DukeTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"package duke;","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-20"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"import java.io.ByteArrayInputStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"import java.io.ByteArrayOutputStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"import java.io.InputStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.AfterEach;","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"public class DukeTest {","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" private final InputStream originalSystemIn \u003d System.in;","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":" private final PrintStream originalSystemOut \u003d System.out;","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" private ByteArrayInputStream testInput;","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":" private ByteArrayOutputStream testOutput;","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" @BeforeEach","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":" public void setUpStreams() {","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" // Redirect System.in and System.out to capture input and output","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" testOutput \u003d new ByteArrayOutputStream();","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":" System.setOut(new PrintStream(testOutput));","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":" // Prepare test input","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":" String userInput \u003d \"todo badminton\\n\"; // Replace with your test input","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":" testInput \u003d new ByteArrayInputStream(userInput.getBytes());","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":" System.setIn(testInput);","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":" @AfterEach","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":" public void restoreStreams() {","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" System.setIn(originalSystemIn);","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":" System.setOut(originalSystemOut);","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":" public void testDuke() {","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":" Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":" duke.run();","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":" String actualOutput \u003d testOutput.toString().trim();","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":" String expectedOutput \u003d \"Hello! I\u0027m Lakinta\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":" \"What can I do for you?\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":" \"Got it. I\u0027ve added this task:\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":" \"[T][ ] badminton\\n\" +","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":" \"Now you have 1 tasks in the list.\";","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":" String normalizedExpected \u003d normalizeString(expectedOutput);","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":" String normalizedActual \u003d normalizeString(actualOutput);","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":" assertEquals(normalizedExpected, normalizedActual);","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":" private String normalizeString(String input) {","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"LuoZYi"},"content":" return input.replaceAll(\"\\\\s+\", \" \").replaceAll(\"\\r\\n\", \"\\n\").trim();","lastModifiedDate":"2023-09-20"},{"lineNumber":57,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"LuoZYi"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"LuoZYi":59}},{"path":"src/test/java/duke/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"package duke;","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-09-20"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-20"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"public class TaskListTest {","lastModifiedDate":"2023-09-20"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":" public void testToDoToString() {","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":" ToDo todo \u003d new ToDo(\"Buy groceries\");","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [T][ ] Buy groceries\", todo.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":17,"author":{"gitId":"LuoZYi"},"content":" public void testEventToString() {","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime from \u003d LocalDateTime.of(2023, 9, 15, 10, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":19,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime to \u003d LocalDateTime.of(2023, 9, 15, 12, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"LuoZYi"},"content":" Event event \u003d new Event(\"Meeting\", from, to);","lastModifiedDate":"2023-09-20"},{"lineNumber":21,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [E][ ] Meeting (from: Sep 15 2023 10:00 to: Sep 15 2023 12:00)\", event.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":23,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":25,"author":{"gitId":"LuoZYi"},"content":" public void testDeadlineToString() {","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime deadlineTime \u003d LocalDateTime.of(2023, 9, 30, 23, 59);","lastModifiedDate":"2023-09-20"},{"lineNumber":27,"author":{"gitId":"LuoZYi"},"content":" Deadline deadline \u003d new Deadline(\"Submit report\", deadlineTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [D][ ] Submit report (by: Sep 30 2023 23:59)\", deadline.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":29,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":31,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"LuoZYi"},"content":" public void testToDoMarkAsDone() {","lastModifiedDate":"2023-09-20"},{"lineNumber":33,"author":{"gitId":"LuoZYi"},"content":" ToDo todo \u003d new ToDo(\"Read a book\");","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"LuoZYi"},"content":" todo.markAsDone();","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [T][X] Read a book\", todo.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"LuoZYi"},"content":" public void testEventMarkAsDone() {","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime from \u003d LocalDateTime.of(2023, 9, 15, 10, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime to \u003d LocalDateTime.of(2023, 9, 15, 12, 0);","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"LuoZYi"},"content":" Event event \u003d new Event(\"Meeting\", from, to);","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"LuoZYi"},"content":" event.markAsDone();","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [E][X] Meeting (from: Sep 15 2023 10:00 to: Sep 15 2023 12:00)\", event.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"LuoZYi"},"content":" @Test","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"LuoZYi"},"content":" public void testDeadlineMarkAsDone() {","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"LuoZYi"},"content":" LocalDateTime deadlineTime \u003d LocalDateTime.of(2023, 9, 30, 23, 59);","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"LuoZYi"},"content":" Deadline deadline \u003d new Deadline(\"Submit report\", deadlineTime);","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"LuoZYi"},"content":" deadline.markAsDone();","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"LuoZYi"},"content":" assertEquals(\" [D][X] Submit report (by: Sep 30 2023 23:59)\", deadline.toString());","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"LuoZYi"},"content":" }","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"LuoZYi"},"content":"}","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"LuoZYi"},"content":"","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"LuoZYi":55}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"LuoZYi"},"content":"todo eat breakfast","lastModifiedDate":"2023-08-25"},{"lineNumber":2,"author":{"gitId":"LuoZYi"},"content":"deadline assignment /by tonight","lastModifiedDate":"2023-08-25"},{"lineNumber":3,"author":{"gitId":"LuoZYi"},"content":"todo meet with friends","lastModifiedDate":"2023-08-25"},{"lineNumber":4,"author":{"gitId":"LuoZYi"},"content":"list","lastModifiedDate":"2023-08-25"},{"lineNumber":5,"author":{"gitId":"LuoZYi"},"content":"event play badminton /from Sunday 4pm /to 6pm","lastModifiedDate":"2023-08-25"},{"lineNumber":6,"author":{"gitId":"LuoZYi"},"content":"mark 3","lastModifiedDate":"2023-08-25"},{"lineNumber":7,"author":{"gitId":"LuoZYi"},"content":"mark 1","lastModifiedDate":"2023-08-25"},{"lineNumber":8,"author":{"gitId":"LuoZYi"},"content":"unmark 3","lastModifiedDate":"2023-08-25"},{"lineNumber":9,"author":{"gitId":"LuoZYi"},"content":"mark 4","lastModifiedDate":"2023-08-25"},{"lineNumber":10,"author":{"gitId":"LuoZYi"},"content":"todo study hard","lastModifiedDate":"2023-08-25"},{"lineNumber":11,"author":{"gitId":"LuoZYi"},"content":"mark 5","lastModifiedDate":"2023-08-25"},{"lineNumber":12,"author":{"gitId":"LuoZYi"},"content":"unmark 4","lastModifiedDate":"2023-08-25"},{"lineNumber":13,"author":{"gitId":"LuoZYi"},"content":"mark 2","lastModifiedDate":"2023-08-25"},{"lineNumber":14,"author":{"gitId":"LuoZYi"},"content":"list","lastModifiedDate":"2023-08-25"}],"authorContributionMap":{"LuoZYi":14}},{"path":"data/duke.txt","fileType":"txt","isBinary":true,"lines":[],"authorContributionMap":{"LuoZYi":0}}] diff --git a/LuoZYi_ip_master/commits.json b/LuoZYi_ip_master/commits.json index a00ed45c..f5154d80 100644 --- a/LuoZYi_ip_master/commits.json +++ b/LuoZYi_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"LuoZYi":[{"date":"2023-08-24","commitResults":[{"hash":"5caf096973d916840f1d12163f01c1ada50e888b","isMergeCommit":false,"messageTitle":"Add Duke.java","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":23,"deletions":0}}},{"hash":"651b5f031f33a066eb63fcb69a3dc976792a5ad7","isMergeCommit":false,"messageTitle":"Level 1","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":1}}},{"hash":"f3fa383e2ef8c57dd7708ad9b303e3cab2b0f018","isMergeCommit":false,"messageTitle":"Level 2","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":9}}},{"hash":"994db45c4fd86e1d11ad9b42ad8fa5f711830d33","isMergeCommit":false,"messageTitle":"Level 3","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":62,"deletions":3}}},{"hash":"011d0bb9c447bff24b457b20348c13196acb8886","isMergeCommit":false,"messageTitle":"Level 3","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":101,"deletions":1}}},{"hash":"7fcb8a02faa92c86fdee40034cc105ed26498e27","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/LuoZYi/ip","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-08-25","commitResults":[{"hash":"456d7266aabc7f0bbc6cf18b6b5e66bf16383a08","isMergeCommit":false,"messageTitle":"text-ui-test","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":14,"deletions":0},"bat":{"insertions":21,"deletions":0},"sh":{"insertions":38,"deletions":0},"md":{"insertions":62,"deletions":0}}},{"hash":"814035371d9155a0eea2d1d62202639ca0c01dfd","isMergeCommit":false,"messageTitle":"clear","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":10}}},{"hash":"181c4fc917caeed1e7884d3cecadc49edf525c14","isMergeCommit":false,"messageTitle":"Exception","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":21}}},{"hash":"3efad5959a789a9eebf6a0e5934396360e07b58b","isMergeCommit":false,"messageTitle":"Delete","messageBody":"","tags":["Level-6","A-TextUiTesting"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":1}}}]},{"date":"2023-09-05","commitResults":[{"hash":"dc5eacc937e9364471b08f9529e6b0afd04c784d","isMergeCommit":false,"messageTitle":"Delete text-ui-test","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"bat":{"insertions":0,"deletions":21},"sh":{"insertions":0,"deletions":38},"md":{"insertions":0,"deletions":29}}}]},{"date":"2023-09-06","commitResults":[{"hash":"3d65d6e1c00bad2ccd34495d2f318283261d7fc0","isMergeCommit":false,"messageTitle":"Level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"java":{"insertions":83,"deletions":1}}},{"hash":"db69b1cbf101cbcaa4da7ef9fcb66e76ad29780e","isMergeCommit":false,"messageTitle":"Delete some unnecessary lines","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":19}}}]},{"date":"2023-09-10","commitResults":[{"hash":"c85782ae0e66ffe00b7e2bbf74c9c0bd74649060","isMergeCommit":false,"messageTitle":"Level 8","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"java":{"insertions":211,"deletions":149}}}]},{"date":"2023-09-14","commitResults":[{"hash":"dab74f0603c6b84a3b69a0bdd28eb5f534761df2","isMergeCommit":false,"messageTitle":"A-MoreOOP","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":381,"deletions":249}}},{"hash":"d415f79659ab2e4f5e323262d89fb62e3ab595be","isMergeCommit":false,"messageTitle":"A-Package","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":12}}},{"hash":"05a8bd00964f9bd986d0b07e46508b65530db466","isMergeCommit":true,"messageTitle":"A-Gradle","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-20","commitResults":[{"hash":"d80e8aa3cb36af64c35a0d7244972d9884889c91","isMergeCommit":false,"messageTitle":"A-JUnit","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":69,"deletions":0},"java":{"insertions":114,"deletions":0}}},{"hash":"9510bb92e9e0b272056009dec55fe8e62eac9a27","isMergeCommit":false,"messageTitle":"gradle src java","messageBody":"","tags":["A-Jar","A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":10,"deletions":6}}},{"hash":"2b50f823b954c79a72d5a7a45ea24e78ab2b95f8","isMergeCommit":false,"messageTitle":"Add Java docs","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":294,"deletions":16}}},{"hash":"c97dcc3301a5138b04512a4189e8af4aa4591844","isMergeCommit":false,"messageTitle":"Follow coding standards","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":50,"deletions":48}}}]},{"date":"2023-09-21","commitResults":[{"hash":"09687f2545e7d55339b6b68536b98abf2870c209","isMergeCommit":false,"messageTitle":"Level-9","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":35,"deletions":7}}}]},{"date":"2023-09-25","commitResults":[{"hash":"11a30b96d01d170d5e92c69f2c458d7ae804fa67","isMergeCommit":false,"messageTitle":"Level-10","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":20,"deletions":0},"java":{"insertions":434,"deletions":19}}},{"hash":"39a3e6767df4288eb6fce3f40466ecb13d30bd80","isMergeCommit":false,"messageTitle":"Add Assertions to Document Assumptions in Duke","messageBody":"Added assert statements in the Duke class to document and validate important assumptions at various points in the code.\nThe assertions cover conditions related to file paths, class initialization, method parameters, and exit procedures.\nThese assertions provide clarity about the expected behavior of the code and help ensure that assumptions hold true during program execution.\nAssertions are a useful tool for enhancing code robustness and catching potential issues during development and testing.\nAssertions are enabled during development and testing but should be disabled in production for improved performance.\nThis commit contributes to code quality and maintainability by explicitly documenting and verifying critical assumptions within the Duke class.\n","fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":0}}},{"hash":"907a215f44016e6c16809894eed4ebaea78cd067","isMergeCommit":true,"messageTitle":"Merge pull request #2 from LuoZYi/branch-A-Assertions","messageBody":"Branch-A-Assertions","fileTypesAndContributionMap":{}},{"hash":"f1e6e01007ce19b4cd8da549114b8b015f630f52","isMergeCommit":false,"messageTitle":"Improve Code Quality and Set Up Package GUI","messageBody":"In this commit, we have taken several steps to enhance the code quality and organization of the project:\n\n1. Refactored and cleaned up code to improve readability and maintainability.\n2. Reorganized classes and packages for better project structure.\n3. Moved relevant files related to the graphical user interface (GUI) into a new \u0027GUI\u0027 package.\n4. Updated import statements and references to reflect the new package structure.\n\nThese changes make the codebase more organized and lay the foundation for future enhancements and feature additions related to the GUI component of the application.\n\nChanges Made:\n- Refactored code for improved clarity and consistency.\n- Created a new \u0027GUI\u0027 package and moved relevant files into it.\n- Updated import statements and references accordingly.\n- Reviewed and tested code changes to ensure they do not introduce errors.\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":7}}},{"hash":"978e718694aca6e16a93c7992072cd4167e41314","isMergeCommit":true,"messageTitle":"Merge pull request #3 from LuoZYi/branch-A-CodingQuality","messageBody":"Improve Code Quality and Set Up Package GUI","fileTypesAndContributionMap":{}},{"hash":"b49041e91dd7e16a0cba7f2dc4363feff0e66327","isMergeCommit":false,"messageTitle":"Add Help extension","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":6}}},{"hash":"9276ea956e33a727ac747784ac1a94556541184d","isMergeCommit":true,"messageTitle":"Merge pull request #4 from LuoZYi/branch-BCD-Extension","messageBody":"Add Help extension","fileTypesAndContributionMap":{}},{"hash":"3b737d849024ea77c4e1c27ad1029aa044257533","isMergeCommit":false,"messageTitle":"A-UserGuide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"gradle":{"insertions":4,"deletions":7},"fxml":{"insertions":46,"deletions":0},"md":{"insertions":147,"deletions":16}}},{"hash":"5a1bd1a4d2a7932352425d07615df23e77be8d81","isMergeCommit":false,"messageTitle":"Update MainWindow","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":3}}},{"hash":"13a34266d720e7b6c2a3d9d1983772e74826170c","isMergeCommit":true,"messageTitle":"Merge pull request #5 from LuoZYi/branch-BCD-Extension","messageBody":"Update MainWindow","fileTypesAndContributionMap":{}},{"hash":"a96e87a1f241b97665bbc40fe3d0b7dafb6c67f9","isMergeCommit":true,"messageTitle":"Resolve conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"f286b4d5eeb5b31d948fcc785a03f77c635c45d8","isMergeCommit":false,"messageTitle":"Delete docs directory","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":0,"deletions":160}}},{"hash":"758742d8cf29b5a89219ee488eff30241d221840","isMergeCommit":false,"messageTitle":"Recover Accidentally deleted files","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":160,"deletions":0}}},{"hash":"26fc4f5dadf53a05eb7e1881bb4e955d36dfb461","isMergeCommit":false,"messageTitle":"Resolve conflict","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":1283}}},{"hash":"5b966001e268010b284743841015acfbdab3da0d","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":160,"deletions":24}}}]}]},"authorFileTypeContributionMap":{"LuoZYi":{"java":114,"md":307,"fxml":46,"sh":0,"bat":0,"gradle":24,"txt":14}},"authorContributionVariance":{"LuoZYi":179141.89},"authorDisplayNameMap":{"LuoZYi":"CS2103T-T10-1 LUO ..NGYI"}} +{"authorDailyContributionsMap":{"LuoZYi":[{"date":"2023-08-24","commitResults":[{"hash":"5caf096973d916840f1d12163f01c1ada50e888b","isMergeCommit":false,"messageTitle":"Add Duke.java","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":23,"deletions":0}}},{"hash":"651b5f031f33a066eb63fcb69a3dc976792a5ad7","isMergeCommit":false,"messageTitle":"Level 1","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":1}}},{"hash":"f3fa383e2ef8c57dd7708ad9b303e3cab2b0f018","isMergeCommit":false,"messageTitle":"Level 2","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":29,"deletions":9}}},{"hash":"994db45c4fd86e1d11ad9b42ad8fa5f711830d33","isMergeCommit":false,"messageTitle":"Level 3","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":62,"deletions":3}}},{"hash":"011d0bb9c447bff24b457b20348c13196acb8886","isMergeCommit":false,"messageTitle":"Level 3","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":101,"deletions":1}}},{"hash":"7fcb8a02faa92c86fdee40034cc105ed26498e27","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/LuoZYi/ip","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-08-25","commitResults":[{"hash":"456d7266aabc7f0bbc6cf18b6b5e66bf16383a08","isMergeCommit":false,"messageTitle":"text-ui-test","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":14,"deletions":0},"bat":{"insertions":21,"deletions":0},"sh":{"insertions":38,"deletions":0},"md":{"insertions":62,"deletions":0}}},{"hash":"814035371d9155a0eea2d1d62202639ca0c01dfd","isMergeCommit":false,"messageTitle":"clear","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":10}}},{"hash":"181c4fc917caeed1e7884d3cecadc49edf525c14","isMergeCommit":false,"messageTitle":"Exception","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":21}}},{"hash":"3efad5959a789a9eebf6a0e5934396360e07b58b","isMergeCommit":false,"messageTitle":"Delete","messageBody":"","tags":["Level-6","A-TextUiTesting"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":1}}}]},{"date":"2023-09-05","commitResults":[{"hash":"dc5eacc937e9364471b08f9529e6b0afd04c784d","isMergeCommit":false,"messageTitle":"Delete text-ui-test","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"bat":{"insertions":0,"deletions":21},"sh":{"insertions":0,"deletions":38},"md":{"insertions":0,"deletions":29}}}]},{"date":"2023-09-06","commitResults":[{"hash":"3d65d6e1c00bad2ccd34495d2f318283261d7fc0","isMergeCommit":false,"messageTitle":"Level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"java":{"insertions":83,"deletions":1}}},{"hash":"db69b1cbf101cbcaa4da7ef9fcb66e76ad29780e","isMergeCommit":false,"messageTitle":"Delete some unnecessary lines","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":19}}}]},{"date":"2023-09-10","commitResults":[{"hash":"c85782ae0e66ffe00b7e2bbf74c9c0bd74649060","isMergeCommit":false,"messageTitle":"Level 8","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"java":{"insertions":211,"deletions":149}}}]},{"date":"2023-09-14","commitResults":[{"hash":"dab74f0603c6b84a3b69a0bdd28eb5f534761df2","isMergeCommit":false,"messageTitle":"A-MoreOOP","messageBody":"","tags":["A-MoreOOP"],"fileTypesAndContributionMap":{"java":{"insertions":381,"deletions":249}}},{"hash":"d415f79659ab2e4f5e323262d89fb62e3ab595be","isMergeCommit":false,"messageTitle":"A-Package","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":12}}},{"hash":"05a8bd00964f9bd986d0b07e46508b65530db466","isMergeCommit":true,"messageTitle":"A-Gradle","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-20","commitResults":[{"hash":"d80e8aa3cb36af64c35a0d7244972d9884889c91","isMergeCommit":false,"messageTitle":"A-JUnit","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":69,"deletions":0},"java":{"insertions":114,"deletions":0}}},{"hash":"9510bb92e9e0b272056009dec55fe8e62eac9a27","isMergeCommit":false,"messageTitle":"gradle src java","messageBody":"","tags":["A-Jar","A-JUnit"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1},"java":{"insertions":10,"deletions":6}}},{"hash":"2b50f823b954c79a72d5a7a45ea24e78ab2b95f8","isMergeCommit":false,"messageTitle":"Add Java docs","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":294,"deletions":16}}},{"hash":"c97dcc3301a5138b04512a4189e8af4aa4591844","isMergeCommit":false,"messageTitle":"Follow coding standards","messageBody":"","tags":["A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":50,"deletions":48}}}]},{"date":"2023-09-21","commitResults":[{"hash":"09687f2545e7d55339b6b68536b98abf2870c209","isMergeCommit":false,"messageTitle":"Level-9","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":35,"deletions":7}}}]},{"date":"2023-09-25","commitResults":[{"hash":"11a30b96d01d170d5e92c69f2c458d7ae804fa67","isMergeCommit":false,"messageTitle":"Level-10","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":20,"deletions":0},"java":{"insertions":434,"deletions":19}}},{"hash":"39a3e6767df4288eb6fce3f40466ecb13d30bd80","isMergeCommit":false,"messageTitle":"Add Assertions to Document Assumptions in Duke","messageBody":"Added assert statements in the Duke class to document and validate important assumptions at various points in the code.\nThe assertions cover conditions related to file paths, class initialization, method parameters, and exit procedures.\nThese assertions provide clarity about the expected behavior of the code and help ensure that assumptions hold true during program execution.\nAssertions are a useful tool for enhancing code robustness and catching potential issues during development and testing.\nAssertions are enabled during development and testing but should be disabled in production for improved performance.\nThis commit contributes to code quality and maintainability by explicitly documenting and verifying critical assumptions within the Duke class.\n","fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":0}}},{"hash":"907a215f44016e6c16809894eed4ebaea78cd067","isMergeCommit":true,"messageTitle":"Merge pull request #2 from LuoZYi/branch-A-Assertions","messageBody":"Branch-A-Assertions","fileTypesAndContributionMap":{}},{"hash":"f1e6e01007ce19b4cd8da549114b8b015f630f52","isMergeCommit":false,"messageTitle":"Improve Code Quality and Set Up Package GUI","messageBody":"In this commit, we have taken several steps to enhance the code quality and organization of the project:\n\n1. Refactored and cleaned up code to improve readability and maintainability.\n2. Reorganized classes and packages for better project structure.\n3. Moved relevant files related to the graphical user interface (GUI) into a new \u0027GUI\u0027 package.\n4. Updated import statements and references to reflect the new package structure.\n\nThese changes make the codebase more organized and lay the foundation for future enhancements and feature additions related to the GUI component of the application.\n\nChanges Made:\n- Refactored code for improved clarity and consistency.\n- Created a new \u0027GUI\u0027 package and moved relevant files into it.\n- Updated import statements and references accordingly.\n- Reviewed and tested code changes to ensure they do not introduce errors.\n","tags":["A-FullCommitMessage"],"fileTypesAndContributionMap":{"java":{"insertions":11,"deletions":7}}},{"hash":"978e718694aca6e16a93c7992072cd4167e41314","isMergeCommit":true,"messageTitle":"Merge pull request #3 from LuoZYi/branch-A-CodingQuality","messageBody":"Improve Code Quality and Set Up Package GUI","fileTypesAndContributionMap":{}},{"hash":"b49041e91dd7e16a0cba7f2dc4363feff0e66327","isMergeCommit":false,"messageTitle":"Add Help extension","messageBody":"","tags":["BCD-Extension"],"fileTypesAndContributionMap":{"java":{"insertions":33,"deletions":6}}},{"hash":"9276ea956e33a727ac747784ac1a94556541184d","isMergeCommit":true,"messageTitle":"Merge pull request #4 from LuoZYi/branch-BCD-Extension","messageBody":"Add Help extension","fileTypesAndContributionMap":{}},{"hash":"3b737d849024ea77c4e1c27ad1029aa044257533","isMergeCommit":false,"messageTitle":"A-UserGuide","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"gradle":{"insertions":4,"deletions":7},"fxml":{"insertions":46,"deletions":0},"md":{"insertions":147,"deletions":16}}},{"hash":"5a1bd1a4d2a7932352425d07615df23e77be8d81","isMergeCommit":false,"messageTitle":"Update MainWindow","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":3,"deletions":3}}},{"hash":"13a34266d720e7b6c2a3d9d1983772e74826170c","isMergeCommit":true,"messageTitle":"Merge pull request #5 from LuoZYi/branch-BCD-Extension","messageBody":"Update MainWindow","fileTypesAndContributionMap":{}},{"hash":"a96e87a1f241b97665bbc40fe3d0b7dafb6c67f9","isMergeCommit":true,"messageTitle":"Resolve conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"f286b4d5eeb5b31d948fcc785a03f77c635c45d8","isMergeCommit":false,"messageTitle":"Delete docs directory","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":0,"deletions":160}}},{"hash":"758742d8cf29b5a89219ee488eff30241d221840","isMergeCommit":false,"messageTitle":"Recover Accidentally deleted files","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":160,"deletions":0}}},{"hash":"26fc4f5dadf53a05eb7e1881bb4e955d36dfb461","isMergeCommit":false,"messageTitle":"Resolve conflict","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":0,"deletions":1283}}},{"hash":"5b966001e268010b284743841015acfbdab3da0d","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":160,"deletions":24}}}]},{"date":"2023-09-27","commitResults":[{"hash":"7b703f3e47d96be7fece76992ee82f44ef9dc17f","isMergeCommit":false,"messageTitle":"Modify gradle location","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":4}}},{"hash":"cfecf240a80aa3816a85658db691db46824ffac3","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/LuoZYi/ip","messageBody":"","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"LuoZYi":{"java":114,"md":307,"fxml":46,"sh":0,"bat":0,"gradle":22,"txt":14}},"authorContributionVariance":{"LuoZYi":171097.22},"authorDisplayNameMap":{"LuoZYi":"CS2103T-T10-1 LUO ..NGYI"}} diff --git a/TyrusLye_ip_master/authorship.json b/TyrusLye_ip_master/authorship.json index 80e8b1f1..54929976 100644 --- a/TyrusLye_ip_master/authorship.json +++ b/TyrusLye_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"# URBOI","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"Are you confused? Lost all the time? Don\u0027t know whats happening? **Well So Do I*. Introducing; _URBOI_. THE BEST THING REMEMBERER IN TOWN.","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"## It can:","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"- Help you remember things!","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"- Set deadlines for things!","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"- Makes finding the things you need to do easy!","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"Greetings from:","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":"UUUUUUUU UUUUUUUURRRRRRRRRRRRRRRRR BBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"U::::::U U::::::UR::::::::::::::::R B::::::::::::::::B OO:::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":"U::::::U U::::::UR::::::RRRRRR:::::R B::::::BBBBBB:::::B OO:::::::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":"UU:::::U U:::::UURR:::::R R:::::RBB:::::B B:::::BO:::::::OOO:::::::OII::::::II","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" U:::::U U:::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R:::::::::::::RR B:::::::::::::BB O:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" U::::::U U::::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" U:::::::UUU:::::::U RR:::::R R:::::RBB:::::BBBBBB::::::BO:::::::OOO:::::::OII::::::II","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" UU:::::::::::::UU R::::::R R:::::RB:::::::::::::::::B OO:::::::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" UU:::::::::UU R::::::R R:::::RB::::::::::::::::B OO:::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" UUUUUUUUU RRRRRRRR RRRRRRRBBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":23,"-":4}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" mainClass.set(\"seedu.duke.Duke\")","lastModifiedDate":"2023-08-05"},{"lineNumber":32,"author":{"gitId":"TyrusLye"},"content":" mainClassName\u003d \"Duke\"","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":39,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"TyrusLye":1,"-":42}},{"path":"src/main/java/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-24"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"import java.io.*;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":" private static final String FILE_PATH \u003d \"src/main/java/tasks.txt\";","lastModifiedDate":"2023-09-07"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":" * Main method to start the Duke application.","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":" * @param args Command-line arguments.","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2019-07-29"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" Scanner scanner \u003d new Scanner(System.in);","lastModifiedDate":"2023-08-24"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" ArrayList\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e(100);","lastModifiedDate":"2023-09-07"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" loadTasksFromFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" String logo \u003d \"UUUUUUUU UUUUUUUURRRRRRRRRRRRRRRRR BBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" +\"U::::::U U::::::UR::::::::::::::::R B::::::::::::::::B OO:::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" +\"U::::::U U::::::UR::::::RRRRRR:::::R B::::::BBBBBB:::::B OO:::::::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" +\"UU:::::U U:::::UURR:::::R R:::::RBB:::::B B:::::BO:::::::OOO:::::::OII::::::II\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::U U:::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R:::::::::::::RR B:::::::::::::BB O:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":28,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"TyrusLye"},"content":" +\" U::::::U U::::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":31,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::::UUU:::::::U RR:::::R R:::::RBB:::::BBBBBB::::::BO:::::::OOO:::::::OII::::::II\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":32,"author":{"gitId":"TyrusLye"},"content":" +\" UU:::::::::::::UU R::::::R R:::::RB:::::::::::::::::B OO:::::::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"TyrusLye"},"content":" +\" UU:::::::::UU R::::::R R:::::RB::::::::::::::::B OO:::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":34,"author":{"gitId":"TyrusLye"},"content":" +\" UUUUUUUUU RRRRRRRR RRRRRRRBBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII\\n\";","lastModifiedDate":"2023-09-23"},{"lineNumber":35,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":36,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Wazzup! It\u0027s\\n\" + logo);","lastModifiedDate":"2023-09-23"},{"lineNumber":37,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"What can I do for you mah man?\");","lastModifiedDate":"2023-09-23"},{"lineNumber":38,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"____________________________________________________________\");","lastModifiedDate":"2023-08-24"},{"lineNumber":39,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":40,"author":{"gitId":"TyrusLye"},"content":" while (true) {","lastModifiedDate":"2023-08-24"},{"lineNumber":41,"author":{"gitId":"TyrusLye"},"content":" String command \u003d scanner.nextLine();","lastModifiedDate":"2023-08-24"},{"lineNumber":42,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"____________________________________________________________\");","lastModifiedDate":"2023-08-24"},{"lineNumber":43,"author":{"gitId":"TyrusLye"},"content":" try{","lastModifiedDate":"2023-08-24"},{"lineNumber":44,"author":{"gitId":"TyrusLye"},"content":" if (command.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":45,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-08-24"},{"lineNumber":46,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-08-24"},{"lineNumber":47,"author":{"gitId":"TyrusLye"},"content":" } else if (command.equalsIgnoreCase(\"list\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":48,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Here are the tasks in your list:\");","lastModifiedDate":"2023-08-24"},{"lineNumber":49,"author":{"gitId":"TyrusLye"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-08-24"},{"lineNumber":50,"author":{"gitId":"TyrusLye"},"content":" System.out.println((i + 1) + \". \" + tasks.get(i));","lastModifiedDate":"2023-08-24"},{"lineNumber":51,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":52,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"todo\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":53,"author":{"gitId":"TyrusLye"},"content":" String description \u003d command.substring(5).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":54,"author":{"gitId":"TyrusLye"},"content":" if (description.isEmpty()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":55,"author":{"gitId":"TyrusLye"},"content":" throw new DukeException(\"The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":56,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":57,"author":{"gitId":"TyrusLye"},"content":" tasks.add(new Todo(description));","lastModifiedDate":"2023-08-24"},{"lineNumber":58,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Got it. I\u0027ve added this task:\\n \" + tasks.get(tasks.size() - 1));","lastModifiedDate":"2023-08-24"},{"lineNumber":59,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":60,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"deadline\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":61,"author":{"gitId":"TyrusLye"},"content":" // Parse the date and time in the format d/M/yyyy HHmm","lastModifiedDate":"2023-09-07"},{"lineNumber":62,"author":{"gitId":"TyrusLye"},"content":" String[] parts \u003d command.split(\" /by \");","lastModifiedDate":"2023-09-07"},{"lineNumber":63,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003c 2) {","lastModifiedDate":"2023-09-07"},{"lineNumber":64,"author":{"gitId":"TyrusLye"},"content":" throw new DukeException(\"Deadline command must include a date.\");","lastModifiedDate":"2023-09-07"},{"lineNumber":65,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":66,"author":{"gitId":"TyrusLye"},"content":" String description \u003d parts[0].substring(9).trim();","lastModifiedDate":"2023-09-07"},{"lineNumber":67,"author":{"gitId":"TyrusLye"},"content":" LocalDateTime dateTime \u003d LocalDateTime.parse(parts[1], DateTimeFormatter.ofPattern(\"d/M/yyyy HHmm\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":68,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":69,"author":{"gitId":"TyrusLye"},"content":" tasks.add(new Deadline(description, dateTime));","lastModifiedDate":"2023-09-07"},{"lineNumber":70,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Got it. I\u0027ve added this task:\\n \" + tasks.get(tasks.size() - 1));","lastModifiedDate":"2023-08-24"},{"lineNumber":71,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"event\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":73,"author":{"gitId":"TyrusLye"},"content":" String description \u003d command.substring(6, command.indexOf(\"/from\")).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":74,"author":{"gitId":"TyrusLye"},"content":" String from \u003d command.substring(command.indexOf(\"/from\") + 6, command.indexOf(\"/to\")).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":75,"author":{"gitId":"TyrusLye"},"content":" String to \u003d command.substring(command.indexOf(\"/to\") + 4).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":76,"author":{"gitId":"TyrusLye"},"content":" tasks.add(new Event(description, from, to));","lastModifiedDate":"2023-08-24"},{"lineNumber":77,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Got it. I\u0027ve added this task:\\n \" + tasks.get(tasks.size() - 1));","lastModifiedDate":"2023-08-24"},{"lineNumber":78,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":79,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"mark\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":80,"author":{"gitId":"TyrusLye"},"content":" int index \u003d Integer.parseInt(command.split(\" \")[1]) - 1;","lastModifiedDate":"2023-08-24"},{"lineNumber":81,"author":{"gitId":"TyrusLye"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":82,"author":{"gitId":"TyrusLye"},"content":" tasks.get(index).markDone();","lastModifiedDate":"2023-08-24"},{"lineNumber":83,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Nice! I\u0027ve marked this task as done:\\n \" + tasks.get(index));","lastModifiedDate":"2023-08-24"},{"lineNumber":84,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":85,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Invalid task index.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":86,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":87,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"unmark\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":88,"author":{"gitId":"TyrusLye"},"content":" int index \u003d Integer.parseInt(command.split(\" \")[1]) - 1;","lastModifiedDate":"2023-08-24"},{"lineNumber":89,"author":{"gitId":"TyrusLye"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":90,"author":{"gitId":"TyrusLye"},"content":" tasks.get(index).markNotDone();","lastModifiedDate":"2023-08-24"},{"lineNumber":91,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"OK, I\u0027ve marked this task as not done yet:\\n \" + tasks.get(index));","lastModifiedDate":"2023-08-24"},{"lineNumber":92,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":93,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Invalid task index.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":94,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":95,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"delete\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":96,"author":{"gitId":"TyrusLye"},"content":" int index \u003d Integer.parseInt(command.split(\" \")[1]) - 1;","lastModifiedDate":"2023-08-24"},{"lineNumber":97,"author":{"gitId":"TyrusLye"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":98,"author":{"gitId":"TyrusLye"},"content":" Task removedTask \u003d tasks.remove(index);","lastModifiedDate":"2023-08-24"},{"lineNumber":99,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Noted. I\u0027ve removed this task:\\n \" + removedTask);","lastModifiedDate":"2023-08-24"},{"lineNumber":100,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":101,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":102,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Invalid task index.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":103,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":104,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"find\")) {","lastModifiedDate":"2023-09-23"},{"lineNumber":105,"author":{"gitId":"TyrusLye"},"content":" String keyword \u003d command.substring(5).trim();","lastModifiedDate":"2023-09-23"},{"lineNumber":106,"author":{"gitId":"TyrusLye"},"content":" findTasks(tasks, keyword);","lastModifiedDate":"2023-09-23"},{"lineNumber":107,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":108,"author":{"gitId":"TyrusLye"},"content":" throw new DukeException(\"I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-24"},{"lineNumber":109,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":110,"author":{"gitId":"TyrusLye"},"content":" saveTasksToFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":111,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":112,"author":{"gitId":"TyrusLye"},"content":" catch (DukeException e) {","lastModifiedDate":"2023-08-24"},{"lineNumber":113,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"☹ OOPS!!! \" + e.getMessage());","lastModifiedDate":"2023-08-24"},{"lineNumber":114,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":115,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":116,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"____________________________________________________________\");","lastModifiedDate":"2023-08-24"},{"lineNumber":117,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":118,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":119,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":120,"author":{"gitId":"TyrusLye"},"content":" scanner.close();","lastModifiedDate":"2023-08-24"},{"lineNumber":121,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":122,"author":{"gitId":"TyrusLye"},"content":" private static String formatDate(LocalDate date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":123,"author":{"gitId":"TyrusLye"},"content":" return date.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":124,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":125,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":126,"author":{"gitId":"TyrusLye"},"content":" * Loads tasks from a file into the task list.","lastModifiedDate":"2023-09-23"},{"lineNumber":127,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":128,"author":{"gitId":"TyrusLye"},"content":" * @param tasks The ArrayList to store the loaded tasks.","lastModifiedDate":"2023-09-23"},{"lineNumber":129,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":130,"author":{"gitId":"TyrusLye"},"content":" private static void loadTasksFromFile(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-07"},{"lineNumber":131,"author":{"gitId":"TyrusLye"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":132,"author":{"gitId":"TyrusLye"},"content":" File file \u003d new File(FILE_PATH);","lastModifiedDate":"2023-09-07"},{"lineNumber":133,"author":{"gitId":"TyrusLye"},"content":" if (file.exists()) {","lastModifiedDate":"2023-09-07"},{"lineNumber":134,"author":{"gitId":"TyrusLye"},"content":" Scanner fileScanner \u003d new Scanner(file);","lastModifiedDate":"2023-09-07"},{"lineNumber":135,"author":{"gitId":"TyrusLye"},"content":" while (fileScanner.hasNextLine()) {","lastModifiedDate":"2023-09-07"},{"lineNumber":136,"author":{"gitId":"TyrusLye"},"content":" String line \u003d fileScanner.nextLine();","lastModifiedDate":"2023-09-07"},{"lineNumber":137,"author":{"gitId":"TyrusLye"},"content":" Task task \u003d createTaskFromLine(line);","lastModifiedDate":"2023-09-07"},{"lineNumber":138,"author":{"gitId":"TyrusLye"},"content":" if (task !\u003d null) {","lastModifiedDate":"2023-09-07"},{"lineNumber":139,"author":{"gitId":"TyrusLye"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":140,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":141,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":142,"author":{"gitId":"TyrusLye"},"content":" fileScanner.close();","lastModifiedDate":"2023-09-07"},{"lineNumber":143,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":144,"author":{"gitId":"TyrusLye"},"content":" } catch (FileNotFoundException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":145,"author":{"gitId":"TyrusLye"},"content":" // Handle file not found exception","lastModifiedDate":"2023-09-07"},{"lineNumber":146,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"File not found: \" + FILE_PATH);","lastModifiedDate":"2023-09-07"},{"lineNumber":147,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":148,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":149,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":150,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":151,"author":{"gitId":"TyrusLye"},"content":" * Creates a Task object from a line of text in the specified format.","lastModifiedDate":"2023-09-23"},{"lineNumber":152,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":153,"author":{"gitId":"TyrusLye"},"content":" * @param line The line of text containing task details.","lastModifiedDate":"2023-09-23"},{"lineNumber":154,"author":{"gitId":"TyrusLye"},"content":" * @return A Task object representing the task described in the line, or null if parsing fails.","lastModifiedDate":"2023-09-23"},{"lineNumber":155,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":156,"author":{"gitId":"TyrusLye"},"content":" private static Task createTaskFromLine(String line) {","lastModifiedDate":"2023-09-07"},{"lineNumber":157,"author":{"gitId":"TyrusLye"},"content":" String[] parts \u003d line.split(\" \\\\| \");","lastModifiedDate":"2023-09-07"},{"lineNumber":158,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003c 3) {","lastModifiedDate":"2023-09-07"},{"lineNumber":159,"author":{"gitId":"TyrusLye"},"content":" return null;","lastModifiedDate":"2023-09-07"},{"lineNumber":160,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":161,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":162,"author":{"gitId":"TyrusLye"},"content":" String type \u003d parts[0];","lastModifiedDate":"2023-09-07"},{"lineNumber":163,"author":{"gitId":"TyrusLye"},"content":" String status \u003d parts[1];","lastModifiedDate":"2023-09-07"},{"lineNumber":164,"author":{"gitId":"TyrusLye"},"content":" String description \u003d parts[2];","lastModifiedDate":"2023-09-07"},{"lineNumber":165,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":166,"author":{"gitId":"TyrusLye"},"content":" Task task \u003d null;","lastModifiedDate":"2023-09-07"},{"lineNumber":167,"author":{"gitId":"TyrusLye"},"content":" switch (type) {","lastModifiedDate":"2023-09-07"},{"lineNumber":168,"author":{"gitId":"TyrusLye"},"content":" case \"T\":","lastModifiedDate":"2023-09-07"},{"lineNumber":169,"author":{"gitId":"TyrusLye"},"content":" task \u003d new Todo(description);","lastModifiedDate":"2023-09-07"},{"lineNumber":170,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":171,"author":{"gitId":"TyrusLye"},"content":" case \"D\":","lastModifiedDate":"2023-09-07"},{"lineNumber":172,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003e\u003d 4) {","lastModifiedDate":"2023-09-07"},{"lineNumber":173,"author":{"gitId":"TyrusLye"},"content":" String by \u003d parts[3];","lastModifiedDate":"2023-09-07"},{"lineNumber":174,"author":{"gitId":"TyrusLye"},"content":" task \u003d new Deadline(description, LocalDateTime.parse(by, DateTimeFormatter.ofPattern(\"d/M/yyyy HHmm\")));","lastModifiedDate":"2023-09-07"},{"lineNumber":175,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":176,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":177,"author":{"gitId":"TyrusLye"},"content":" case \"E\":","lastModifiedDate":"2023-09-07"},{"lineNumber":178,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003e\u003d 5) {","lastModifiedDate":"2023-09-07"},{"lineNumber":179,"author":{"gitId":"TyrusLye"},"content":" String from \u003d parts[3];","lastModifiedDate":"2023-09-07"},{"lineNumber":180,"author":{"gitId":"TyrusLye"},"content":" String to \u003d parts[4];","lastModifiedDate":"2023-09-07"},{"lineNumber":181,"author":{"gitId":"TyrusLye"},"content":" task \u003d new Event(description, from, to);","lastModifiedDate":"2023-09-07"},{"lineNumber":182,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":183,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":184,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":185,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":186,"author":{"gitId":"TyrusLye"},"content":" if (task !\u003d null) {","lastModifiedDate":"2023-09-07"},{"lineNumber":187,"author":{"gitId":"TyrusLye"},"content":" if (status.equals(\"1\")) {","lastModifiedDate":"2023-09-07"},{"lineNumber":188,"author":{"gitId":"TyrusLye"},"content":" task.markDone();","lastModifiedDate":"2023-09-07"},{"lineNumber":189,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":190,"author":{"gitId":"TyrusLye"},"content":" task.markNotDone();","lastModifiedDate":"2023-09-07"},{"lineNumber":191,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":192,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":193,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":194,"author":{"gitId":"TyrusLye"},"content":" return task;","lastModifiedDate":"2023-09-07"},{"lineNumber":195,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":196,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":197,"author":{"gitId":"TyrusLye"},"content":" private static void findTasks(ArrayList\u003cTask\u003e tasks, String keyword) {","lastModifiedDate":"2023-09-23"},{"lineNumber":198,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Here are the matching tasks in your list:\");","lastModifiedDate":"2023-09-23"},{"lineNumber":199,"author":{"gitId":"TyrusLye"},"content":" int count \u003d 0;","lastModifiedDate":"2023-09-23"},{"lineNumber":200,"author":{"gitId":"TyrusLye"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-23"},{"lineNumber":201,"author":{"gitId":"TyrusLye"},"content":" Task task \u003d tasks.get(i);","lastModifiedDate":"2023-09-23"},{"lineNumber":202,"author":{"gitId":"TyrusLye"},"content":" if (task.getDescription().contains(keyword)) {","lastModifiedDate":"2023-09-23"},{"lineNumber":203,"author":{"gitId":"TyrusLye"},"content":" System.out.println((count + 1) + \". \" + task);","lastModifiedDate":"2023-09-23"},{"lineNumber":204,"author":{"gitId":"TyrusLye"},"content":" count++;","lastModifiedDate":"2023-09-23"},{"lineNumber":205,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":206,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":207,"author":{"gitId":"TyrusLye"},"content":" if (count \u003d\u003d 0) {","lastModifiedDate":"2023-09-23"},{"lineNumber":208,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"No matching tasks found.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":209,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":210,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":211,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":212,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":213,"author":{"gitId":"TyrusLye"},"content":" * Save tasks to a file.","lastModifiedDate":"2023-09-23"},{"lineNumber":214,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":215,"author":{"gitId":"TyrusLye"},"content":" * @param tasks The ArrayList of tasks to save.","lastModifiedDate":"2023-09-23"},{"lineNumber":216,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":217,"author":{"gitId":"TyrusLye"},"content":" private static void saveTasksToFile(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-07"},{"lineNumber":218,"author":{"gitId":"TyrusLye"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":219,"author":{"gitId":"TyrusLye"},"content":" FileWriter fileWriter \u003d new FileWriter(FILE_PATH);","lastModifiedDate":"2023-09-07"},{"lineNumber":220,"author":{"gitId":"TyrusLye"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-07"},{"lineNumber":221,"author":{"gitId":"TyrusLye"},"content":" fileWriter.write(task.toFileString() + System.lineSeparator());","lastModifiedDate":"2023-09-07"},{"lineNumber":222,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":223,"author":{"gitId":"TyrusLye"},"content":" fileWriter.close();","lastModifiedDate":"2023-09-07"},{"lineNumber":224,"author":{"gitId":"TyrusLye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":225,"author":{"gitId":"TyrusLye"},"content":" // Handle IO exception","lastModifiedDate":"2023-09-07"},{"lineNumber":226,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Error saving tasks to file: \" + e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":227,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":228,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":229,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"},{"lineNumber":230,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":231,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":232,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":233,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":234,"author":{"gitId":"TyrusLye"},"content":" * Represents a task that can be added to the task list.","lastModifiedDate":"2023-09-23"},{"lineNumber":235,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":236,"author":{"gitId":"TyrusLye"},"content":"class Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":237,"author":{"gitId":"TyrusLye"},"content":" protected String description;","lastModifiedDate":"2023-09-07"},{"lineNumber":238,"author":{"gitId":"TyrusLye"},"content":" protected boolean isDone;","lastModifiedDate":"2023-09-07"},{"lineNumber":239,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":240,"author":{"gitId":"TyrusLye"},"content":" protected LocalDateTime date;","lastModifiedDate":"2023-09-07"},{"lineNumber":241,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":242,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":243,"author":{"gitId":"TyrusLye"},"content":" return \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":244,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":245,"author":{"gitId":"TyrusLye"},"content":" public String formatDate() {","lastModifiedDate":"2023-09-07"},{"lineNumber":246,"author":{"gitId":"TyrusLye"},"content":" return date.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":247,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":248,"author":{"gitId":"TyrusLye"},"content":" public Task(String description, LocalDateTime date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":249,"author":{"gitId":"TyrusLye"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-24"},{"lineNumber":250,"author":{"gitId":"TyrusLye"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-24"},{"lineNumber":251,"author":{"gitId":"TyrusLye"},"content":" this.date \u003d date;","lastModifiedDate":"2023-09-07"},{"lineNumber":252,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":253,"author":{"gitId":"TyrusLye"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-24"},{"lineNumber":254,"author":{"gitId":"TyrusLye"},"content":" return (isDone ? \"[X]\" : \"[ ]\"); // Return a tick or cross symbol cuz im lazy like that, or its easier. idk","lastModifiedDate":"2023-08-24"},{"lineNumber":255,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":256,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":257,"author":{"gitId":"TyrusLye"},"content":" * Get the description of the task.","lastModifiedDate":"2023-09-23"},{"lineNumber":258,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":259,"author":{"gitId":"TyrusLye"},"content":" * @return The description of the task.","lastModifiedDate":"2023-09-23"},{"lineNumber":260,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":261,"author":{"gitId":"TyrusLye"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-23"},{"lineNumber":262,"author":{"gitId":"TyrusLye"},"content":" return description;","lastModifiedDate":"2023-09-23"},{"lineNumber":263,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":264,"author":{"gitId":"TyrusLye"},"content":" public boolean isDone() {","lastModifiedDate":"2023-08-24"},{"lineNumber":265,"author":{"gitId":"TyrusLye"},"content":" return isDone;","lastModifiedDate":"2023-08-24"},{"lineNumber":266,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":267,"author":{"gitId":"TyrusLye"},"content":" public void markDone() {","lastModifiedDate":"2023-08-24"},{"lineNumber":268,"author":{"gitId":"TyrusLye"},"content":" isDone \u003d true;","lastModifiedDate":"2023-08-24"},{"lineNumber":269,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":270,"author":{"gitId":"TyrusLye"},"content":" public void markNotDone() {","lastModifiedDate":"2023-08-24"},{"lineNumber":271,"author":{"gitId":"TyrusLye"},"content":" isDone \u003d false;","lastModifiedDate":"2023-08-24"},{"lineNumber":272,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":273,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":274,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":275,"author":{"gitId":"TyrusLye"},"content":" return \"[\" + (isDone ? \"X\" : \" \") + \"] \" + description;","lastModifiedDate":"2023-08-24"},{"lineNumber":276,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":277,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":278,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":279,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":280,"author":{"gitId":"TyrusLye"},"content":" * Represents a Todo task.","lastModifiedDate":"2023-09-23"},{"lineNumber":281,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":282,"author":{"gitId":"TyrusLye"},"content":"class Todo extends Task {","lastModifiedDate":"2023-09-07"},{"lineNumber":283,"author":{"gitId":"TyrusLye"},"content":" public Todo(String description) {","lastModifiedDate":"2023-08-24"},{"lineNumber":284,"author":{"gitId":"TyrusLye"},"content":" super(description,null);","lastModifiedDate":"2023-09-07"},{"lineNumber":285,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":286,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":287,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":288,"author":{"gitId":"TyrusLye"},"content":" return \"T | \" + (isDone ? \"1\" : \"0\") + \" | \" + description;","lastModifiedDate":"2023-09-07"},{"lineNumber":289,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":290,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":291,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":292,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":293,"author":{"gitId":"TyrusLye"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-24"},{"lineNumber":294,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":295,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":296,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":297,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":298,"author":{"gitId":"TyrusLye"},"content":" * Represents a Deadline task.","lastModifiedDate":"2023-09-23"},{"lineNumber":299,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":300,"author":{"gitId":"TyrusLye"},"content":"class Deadline extends Task {","lastModifiedDate":"2023-09-07"},{"lineNumber":301,"author":{"gitId":"TyrusLye"},"content":" protected String by;","lastModifiedDate":"2023-08-24"},{"lineNumber":302,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":303,"author":{"gitId":"TyrusLye"},"content":" public Deadline(String description, LocalDateTime date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":304,"author":{"gitId":"TyrusLye"},"content":" super(description, date);","lastModifiedDate":"2023-09-07"},{"lineNumber":305,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":306,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":307,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":308,"author":{"gitId":"TyrusLye"},"content":" return \"D | \" + (isDone ? \"1\" : \"0\") + \" | \" + description + \" | \" + date;","lastModifiedDate":"2023-09-07"},{"lineNumber":309,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":310,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":311,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":312,"author":{"gitId":"TyrusLye"},"content":" return \"[D]\" + super.toString() + \" (by: \" + date + \")\";","lastModifiedDate":"2023-09-07"},{"lineNumber":313,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":314,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":315,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":316,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":317,"author":{"gitId":"TyrusLye"},"content":" * Represents an Event task.","lastModifiedDate":"2023-09-23"},{"lineNumber":318,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":319,"author":{"gitId":"TyrusLye"},"content":"class Event extends Task {","lastModifiedDate":"2023-09-07"},{"lineNumber":320,"author":{"gitId":"TyrusLye"},"content":" protected String from;","lastModifiedDate":"2023-08-24"},{"lineNumber":321,"author":{"gitId":"TyrusLye"},"content":" protected String to;","lastModifiedDate":"2023-08-24"},{"lineNumber":322,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":323,"author":{"gitId":"TyrusLye"},"content":" public Event(String description, String from, String to) {","lastModifiedDate":"2023-08-24"},{"lineNumber":324,"author":{"gitId":"TyrusLye"},"content":" super(description,null);","lastModifiedDate":"2023-09-07"},{"lineNumber":325,"author":{"gitId":"TyrusLye"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-24"},{"lineNumber":326,"author":{"gitId":"TyrusLye"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-24"},{"lineNumber":327,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":328,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":329,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":330,"author":{"gitId":"TyrusLye"},"content":" return \"E | \" + (isDone ? \"1\" : \"0\") + \" | \" + description + \" | \" + from + \" | \" + to;","lastModifiedDate":"2023-09-07"},{"lineNumber":331,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":332,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":333,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":334,"author":{"gitId":"TyrusLye"},"content":" return \"[E]\" + super.toString() + \" (from: \" + from + \" to: \" + to + \")\";","lastModifiedDate":"2023-08-24"},{"lineNumber":335,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":336,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":337,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":338,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":339,"author":{"gitId":"TyrusLye"},"content":" * Custom exception class for Duke-specific exceptions.","lastModifiedDate":"2023-09-23"},{"lineNumber":340,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":341,"author":{"gitId":"TyrusLye"},"content":"class DukeException extends Exception {","lastModifiedDate":"2023-08-24"},{"lineNumber":342,"author":{"gitId":"TyrusLye"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-24"},{"lineNumber":343,"author":{"gitId":"TyrusLye"},"content":" super(message);","lastModifiedDate":"2023-08-24"},{"lineNumber":344,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":345,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"TyrusLye":339,"-":6}},{"path":"src/main/java/tasks.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"T | 0 | thing","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"E | 0 | thing2 | now | later","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"TyrusLye":2}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"deadline do homework /by no idea :-p","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"TyrusLye":1}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"SET \"JAVA_HOME\u003dC:\\Program Files\\Java\\jdk-11.0.16\"","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"SET \"PATH\u003d%JAVA_HOME%\\bin;%PATH%\"","lastModifiedDate":"2023-08-24"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"del ACTUAL.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"javac -cp ..\\src\\main\\java -encoding UTF-8 -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"java -classpath ..\\bin Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"TyrusLye":6,"-":19}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":" rm ACTUAL.TXT.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":"java -classpath ../bin Duke \u003c input.txt \u003e ACTUAL.TXT.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":"dos2unix ACTUAL.TXT.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"TyrusLye"},"content":"diff ACTUAL.TXT.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"TyrusLye":5,"-":33}},{"path":"tasks.txt","fileType":"txt","isBinary":true,"lines":[],"authorContributionMap":{"TyrusLye":0}}] +[{"path":"README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"# URBOI","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"Are you confused? Lost all the time? Don\u0027t know whats happening? **Well So Do I*. Introducing; _URBOI_. THE BEST THING REMEMBERER IN TOWN.","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"## It can:","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"- Help you remember things!","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"- Set deadlines for things!","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"- Makes finding the things you need to do easy!","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"Greetings from:","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":"UUUUUUUU UUUUUUUURRRRRRRRRRRRRRRRR BBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"U::::::U U::::::UR::::::::::::::::R B::::::::::::::::B OO:::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":"U::::::U U::::::UR::::::RRRRRR:::::R B::::::BBBBBB:::::B OO:::::::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":"UU:::::U U:::::UURR:::::R R:::::RBB:::::B B:::::BO:::::::OOO:::::::OII::::::II","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" U:::::U U:::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R:::::::::::::RR B:::::::::::::BB O:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" U::::::U U::::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I ","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" U:::::::UUU:::::::U RR:::::R R:::::RBB:::::BBBBBB::::::BO:::::::OOO:::::::OII::::::II","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" UU:::::::::::::UU R::::::R R:::::RB:::::::::::::::::B OO:::::::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" UU:::::::::UU R::::::R R:::::RB::::::::::::::::B OO:::::::::OO I::::::::I","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" UUUUUUUUU RRRRRRRR RRRRRRRBBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":23,"-":4}},{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":28,"author":{"gitId":"TyrusLye"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":" mainClass.set(\"seedu.duke.Duke\")","lastModifiedDate":"2023-08-05"},{"lineNumber":47,"author":{"gitId":"TyrusLye"},"content":" mainClassName\u003d \"Launcher\"","lastModifiedDate":"2023-09-23"},{"lineNumber":48,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"TyrusLye"},"content":" archiveFileName \u003d \u0027duke.jar\u0027","lastModifiedDate":"2023-09-23"},{"lineNumber":52,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":55,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"TyrusLye":17,"-":42}},{"path":"src/main/java/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"import java.util.Collections;","lastModifiedDate":"2023-09-23"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-23"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" * An example of a custom control using FXML.","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" * This control represents a dialog box consisting of an ImageView to represent the speaker\u0027s face and a label","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" * containing text from the speaker.","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" private Label dialog;","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" private DialogBox(String text, Image img) {","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" try {","lastModifiedDate":"2023-09-23"},{"lineNumber":28,"author":{"gitId":"TyrusLye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(MainWindow.class.getResource(\"/view/DialogBox.fxml\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"TyrusLye"},"content":" fxmlLoader.setController(this);","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"TyrusLye"},"content":" fxmlLoader.setRoot(this);","lastModifiedDate":"2023-09-23"},{"lineNumber":31,"author":{"gitId":"TyrusLye"},"content":" fxmlLoader.load();","lastModifiedDate":"2023-09-23"},{"lineNumber":32,"author":{"gitId":"TyrusLye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"TyrusLye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-23"},{"lineNumber":34,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":35,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":36,"author":{"gitId":"TyrusLye"},"content":" dialog.setText(text);","lastModifiedDate":"2023-09-23"},{"lineNumber":37,"author":{"gitId":"TyrusLye"},"content":" displayPicture.setImage(img);","lastModifiedDate":"2023-09-23"},{"lineNumber":38,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":39,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":40,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":41,"author":{"gitId":"TyrusLye"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-23"},{"lineNumber":42,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":43,"author":{"gitId":"TyrusLye"},"content":" private void flip() {","lastModifiedDate":"2023-09-23"},{"lineNumber":44,"author":{"gitId":"TyrusLye"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-23"},{"lineNumber":45,"author":{"gitId":"TyrusLye"},"content":" Collections.reverse(tmp);","lastModifiedDate":"2023-09-23"},{"lineNumber":46,"author":{"gitId":"TyrusLye"},"content":" getChildren().setAll(tmp);","lastModifiedDate":"2023-09-23"},{"lineNumber":47,"author":{"gitId":"TyrusLye"},"content":" setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-23"},{"lineNumber":48,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":49,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":50,"author":{"gitId":"TyrusLye"},"content":" public static DialogBox getUserDialog(String text, Image img) {","lastModifiedDate":"2023-09-23"},{"lineNumber":51,"author":{"gitId":"TyrusLye"},"content":" return new DialogBox(text, img);","lastModifiedDate":"2023-09-23"},{"lineNumber":52,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":53,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":54,"author":{"gitId":"TyrusLye"},"content":" public static DialogBox getDukeDialog(String text, Image img) {","lastModifiedDate":"2023-09-23"},{"lineNumber":55,"author":{"gitId":"TyrusLye"},"content":" var db \u003d new DialogBox(text, img);","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"TyrusLye"},"content":" db.flip();","lastModifiedDate":"2023-09-23"},{"lineNumber":57,"author":{"gitId":"TyrusLye"},"content":" return db;","lastModifiedDate":"2023-09-23"},{"lineNumber":58,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":59,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":59}},{"path":"src/main/java/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-07"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-07"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-24"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"import java.io.*;","lastModifiedDate":"2023-09-07"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":" //private static final String FILE_PATH \u003d \"src/main/java/tasks.txt\";","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":" private static final String FILE_PATH \u003d \"tasks.txt/\";","lastModifiedDate":"2023-09-27"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":" private static String response\u003d \"\";","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":" * Main method to start the Duke application.","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":" * @param args Command-line arguments.","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2019-07-29"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" //Scanner scanner \u003d new Scanner(System.in);","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" String logo \u003d \"UUUUUUUU UUUUUUUURRRRRRRRRRRRRRRRR BBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" +\"U::::::U U::::::UR::::::::::::::::R B::::::::::::::::B OO:::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" +\"U::::::U U::::::UR::::::RRRRRR:::::R B::::::BBBBBB:::::B OO:::::::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" +\"UU:::::U U:::::UURR:::::R R:::::RBB:::::B B:::::BO:::::::OOO:::::::OII::::::II\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::U U:::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R:::::::::::::RR B:::::::::::::BB O:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::RRRRRR:::::R B::::BBBBBB:::::B O:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":28,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::D D:::::U R::::R R:::::R B::::B B:::::BO:::::O O:::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":30,"author":{"gitId":"TyrusLye"},"content":" +\" U::::::U U::::::U R::::R R:::::R B::::B B:::::BO::::::O O::::::O I::::I \\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":31,"author":{"gitId":"TyrusLye"},"content":" +\" U:::::::UUU:::::::U RR:::::R R:::::RBB:::::BBBBBB::::::BO:::::::OOO:::::::OII::::::II\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":32,"author":{"gitId":"TyrusLye"},"content":" +\" UU:::::::::::::UU R::::::R R:::::RB:::::::::::::::::B OO:::::::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"TyrusLye"},"content":" +\" UU:::::::::UU R::::::R R:::::RB::::::::::::::::B OO:::::::::OO I::::::::I\\n\"","lastModifiedDate":"2023-09-23"},{"lineNumber":34,"author":{"gitId":"TyrusLye"},"content":" +\" UUUUUUUUU RRRRRRRR RRRRRRRBBBBBBBBBBBBBBBBB OOOOOOOOO IIIIIIIIII\\n\";","lastModifiedDate":"2023-09-23"},{"lineNumber":35,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":36,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Wazzup! It\u0027s\\n\" + logo);","lastModifiedDate":"2023-09-23"},{"lineNumber":37,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"What can I do for you mah man?\");","lastModifiedDate":"2023-09-23"},{"lineNumber":38,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"____________________________________________________________\");","lastModifiedDate":"2023-08-24"},{"lineNumber":39,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":40,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":41,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":42,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":43,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":44,"author":{"gitId":"TyrusLye"},"content":" * Process user input and generate a response.","lastModifiedDate":"2023-09-23"},{"lineNumber":45,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":46,"author":{"gitId":"TyrusLye"},"content":" * @param command The user\u0027s input command.","lastModifiedDate":"2023-09-23"},{"lineNumber":47,"author":{"gitId":"TyrusLye"},"content":" * @return A response generated by URBOI.","lastModifiedDate":"2023-09-23"},{"lineNumber":48,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":49,"author":{"gitId":"TyrusLye"},"content":" public String getResponse(String command) {","lastModifiedDate":"2023-09-23"},{"lineNumber":50,"author":{"gitId":"TyrusLye"},"content":" ArrayList\u003cTask\u003e tasks \u003d new ArrayList\u003c\u003e(100);","lastModifiedDate":"2023-09-23"},{"lineNumber":51,"author":{"gitId":"TyrusLye"},"content":" loadTasksFromFile(tasks);","lastModifiedDate":"2023-09-23"},{"lineNumber":52,"author":{"gitId":"TyrusLye"},"content":" StringBuilder response \u003d new StringBuilder();","lastModifiedDate":"2023-09-23"},{"lineNumber":53,"author":{"gitId":"TyrusLye"},"content":" try{","lastModifiedDate":"2023-08-24"},{"lineNumber":54,"author":{"gitId":"TyrusLye"},"content":" if (command.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":55,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":57,"author":{"gitId":"TyrusLye"},"content":" } else if (command.equalsIgnoreCase(\"list\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":58,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Here are the tasks in your list:\");","lastModifiedDate":"2023-09-23"},{"lineNumber":59,"author":{"gitId":"TyrusLye"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-08-24"},{"lineNumber":60,"author":{"gitId":"TyrusLye"},"content":" response.append((i + 1) + \". \" + tasks.get(i));","lastModifiedDate":"2023-09-23"},{"lineNumber":61,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":62,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"todo\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":63,"author":{"gitId":"TyrusLye"},"content":" String description \u003d command.substring(5).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":64,"author":{"gitId":"TyrusLye"},"content":" if (description.isEmpty()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":65,"author":{"gitId":"TyrusLye"},"content":" throw new DukeException(\"The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-24"},{"lineNumber":66,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":67,"author":{"gitId":"TyrusLye"},"content":" tasks.add(new Todo(description));","lastModifiedDate":"2023-08-24"},{"lineNumber":68,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Got it. I\u0027ve added this task:\\n \" + tasks.get(tasks.size() - 1));","lastModifiedDate":"2023-09-23"},{"lineNumber":69,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":70,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"deadline\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":71,"author":{"gitId":"TyrusLye"},"content":" // Parse the date and time in the format d/M/yyyy HHmm","lastModifiedDate":"2023-09-07"},{"lineNumber":72,"author":{"gitId":"TyrusLye"},"content":" String[] parts \u003d command.split(\" /by \");","lastModifiedDate":"2023-09-07"},{"lineNumber":73,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003c 2) {","lastModifiedDate":"2023-09-07"},{"lineNumber":74,"author":{"gitId":"TyrusLye"},"content":" throw new DukeException(\"Deadline command must include a date.\");","lastModifiedDate":"2023-09-07"},{"lineNumber":75,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":76,"author":{"gitId":"TyrusLye"},"content":" String description \u003d parts[0].substring(9).trim();","lastModifiedDate":"2023-09-07"},{"lineNumber":77,"author":{"gitId":"TyrusLye"},"content":" LocalDateTime dateTime \u003d LocalDateTime.parse(parts[1], DateTimeFormatter.ofPattern(\"d/M/yyyy HHmm\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":78,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":79,"author":{"gitId":"TyrusLye"},"content":" tasks.add(new Deadline(description, dateTime));","lastModifiedDate":"2023-09-07"},{"lineNumber":80,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Got it. I\u0027ve added this task:\\n \" + tasks.get(tasks.size() - 1));","lastModifiedDate":"2023-09-23"},{"lineNumber":81,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":82,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"event\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":83,"author":{"gitId":"TyrusLye"},"content":" String description \u003d command.substring(6, command.indexOf(\"/from\")).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":84,"author":{"gitId":"TyrusLye"},"content":" String from \u003d command.substring(command.indexOf(\"/from\") + 6, command.indexOf(\"/to\")).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":85,"author":{"gitId":"TyrusLye"},"content":" String to \u003d command.substring(command.indexOf(\"/to\") + 4).trim();","lastModifiedDate":"2023-08-24"},{"lineNumber":86,"author":{"gitId":"TyrusLye"},"content":" tasks.add(new Event(description, from, to));","lastModifiedDate":"2023-08-24"},{"lineNumber":87,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Got it. I\u0027ve added this task:\\n \" + tasks.get(tasks.size() - 1));","lastModifiedDate":"2023-09-23"},{"lineNumber":88,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":89,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"mark\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":90,"author":{"gitId":"TyrusLye"},"content":" int index \u003d Integer.parseInt(command.split(\" \")[1]) - 1;","lastModifiedDate":"2023-08-24"},{"lineNumber":91,"author":{"gitId":"TyrusLye"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":92,"author":{"gitId":"TyrusLye"},"content":" tasks.get(index).markDone();","lastModifiedDate":"2023-08-24"},{"lineNumber":93,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Nice! I\u0027ve marked this task as done:\\n \" + tasks.get(index));","lastModifiedDate":"2023-09-23"},{"lineNumber":94,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":95,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Invalid task index.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":96,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":97,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"unmark\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":98,"author":{"gitId":"TyrusLye"},"content":" int index \u003d Integer.parseInt(command.split(\" \")[1]) - 1;","lastModifiedDate":"2023-08-24"},{"lineNumber":99,"author":{"gitId":"TyrusLye"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":100,"author":{"gitId":"TyrusLye"},"content":" tasks.get(index).markNotDone();","lastModifiedDate":"2023-08-24"},{"lineNumber":101,"author":{"gitId":"TyrusLye"},"content":" response.append(\"OK, I\u0027ve marked this task as not done yet:\\n \" + tasks.get(index));","lastModifiedDate":"2023-09-23"},{"lineNumber":102,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":103,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Invalid task index.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":104,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":105,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"delete\")) {","lastModifiedDate":"2023-08-24"},{"lineNumber":106,"author":{"gitId":"TyrusLye"},"content":" int index \u003d Integer.parseInt(command.split(\" \")[1]) - 1;","lastModifiedDate":"2023-08-24"},{"lineNumber":107,"author":{"gitId":"TyrusLye"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-24"},{"lineNumber":108,"author":{"gitId":"TyrusLye"},"content":" Task removedTask \u003d tasks.remove(index);","lastModifiedDate":"2023-08-24"},{"lineNumber":109,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Noted. I\u0027ve removed this task:\\n \" + removedTask);","lastModifiedDate":"2023-09-23"},{"lineNumber":110,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Now you have \" + tasks.size() + \" tasks in the list.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":111,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":112,"author":{"gitId":"TyrusLye"},"content":" response.append(\"Invalid task index.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":113,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":114,"author":{"gitId":"TyrusLye"},"content":" } else if (command.startsWith(\"find\")) {","lastModifiedDate":"2023-09-23"},{"lineNumber":115,"author":{"gitId":"TyrusLye"},"content":" String keyword \u003d command.substring(5).trim();","lastModifiedDate":"2023-09-23"},{"lineNumber":116,"author":{"gitId":"TyrusLye"},"content":" findTasks(tasks, keyword);","lastModifiedDate":"2023-09-23"},{"lineNumber":117,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-08-24"},{"lineNumber":118,"author":{"gitId":"TyrusLye"},"content":" throw new DukeException(\"I\u0027m sorry, but I don\u0027t know what that means :-(\");","lastModifiedDate":"2023-08-24"},{"lineNumber":119,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":120,"author":{"gitId":"TyrusLye"},"content":" saveTasksToFile(tasks);","lastModifiedDate":"2023-09-07"},{"lineNumber":121,"author":{"gitId":"TyrusLye"},"content":" } catch (DukeException e) {","lastModifiedDate":"2023-09-23"},{"lineNumber":122,"author":{"gitId":"TyrusLye"},"content":" response.append(\"☹ OOPS!!! \" + e.getMessage());","lastModifiedDate":"2023-09-23"},{"lineNumber":123,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":124,"author":{"gitId":"TyrusLye"},"content":" return response.toString();","lastModifiedDate":"2023-09-23"},{"lineNumber":125,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":126,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":127,"author":{"gitId":"TyrusLye"},"content":" private static String formatDate(LocalDate date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":128,"author":{"gitId":"TyrusLye"},"content":" return date.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":129,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":130,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":131,"author":{"gitId":"TyrusLye"},"content":" * Loads tasks from a file into the task list.","lastModifiedDate":"2023-09-23"},{"lineNumber":132,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":133,"author":{"gitId":"TyrusLye"},"content":" * @param tasks The ArrayList to store the loaded tasks.","lastModifiedDate":"2023-09-23"},{"lineNumber":134,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":135,"author":{"gitId":"TyrusLye"},"content":" private static void loadTasksFromFile(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-07"},{"lineNumber":136,"author":{"gitId":"TyrusLye"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":137,"author":{"gitId":"TyrusLye"},"content":" File file \u003d new File(FILE_PATH);","lastModifiedDate":"2023-09-07"},{"lineNumber":138,"author":{"gitId":"TyrusLye"},"content":" if (file.exists()) {","lastModifiedDate":"2023-09-07"},{"lineNumber":139,"author":{"gitId":"TyrusLye"},"content":" Scanner fileScanner \u003d new Scanner(file);","lastModifiedDate":"2023-09-07"},{"lineNumber":140,"author":{"gitId":"TyrusLye"},"content":" while (fileScanner.hasNextLine()) {","lastModifiedDate":"2023-09-07"},{"lineNumber":141,"author":{"gitId":"TyrusLye"},"content":" String line \u003d fileScanner.nextLine();","lastModifiedDate":"2023-09-07"},{"lineNumber":142,"author":{"gitId":"TyrusLye"},"content":" Task task \u003d createTaskFromLine(line);","lastModifiedDate":"2023-09-07"},{"lineNumber":143,"author":{"gitId":"TyrusLye"},"content":" if (task !\u003d null) {","lastModifiedDate":"2023-09-07"},{"lineNumber":144,"author":{"gitId":"TyrusLye"},"content":" tasks.add(task);","lastModifiedDate":"2023-09-07"},{"lineNumber":145,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":146,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":147,"author":{"gitId":"TyrusLye"},"content":" fileScanner.close();","lastModifiedDate":"2023-09-07"},{"lineNumber":148,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":149,"author":{"gitId":"TyrusLye"},"content":" } catch (FileNotFoundException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":150,"author":{"gitId":"TyrusLye"},"content":" // Handle file not found exception","lastModifiedDate":"2023-09-07"},{"lineNumber":151,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"File not found: \" + FILE_PATH);","lastModifiedDate":"2023-09-07"},{"lineNumber":152,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":153,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":154,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":155,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":156,"author":{"gitId":"TyrusLye"},"content":" * Creates a Task object from a line of text in the specified format.","lastModifiedDate":"2023-09-23"},{"lineNumber":157,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":158,"author":{"gitId":"TyrusLye"},"content":" * @param line The line of text containing task details.","lastModifiedDate":"2023-09-23"},{"lineNumber":159,"author":{"gitId":"TyrusLye"},"content":" * @return A Task object representing the task described in the line, or null if parsing fails.","lastModifiedDate":"2023-09-23"},{"lineNumber":160,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":161,"author":{"gitId":"TyrusLye"},"content":" private static Task createTaskFromLine(String line) {","lastModifiedDate":"2023-09-07"},{"lineNumber":162,"author":{"gitId":"TyrusLye"},"content":" String[] parts \u003d line.split(\" \\\\| \");","lastModifiedDate":"2023-09-07"},{"lineNumber":163,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003c 3) {","lastModifiedDate":"2023-09-07"},{"lineNumber":164,"author":{"gitId":"TyrusLye"},"content":" return null;","lastModifiedDate":"2023-09-07"},{"lineNumber":165,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":166,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":167,"author":{"gitId":"TyrusLye"},"content":" String type \u003d parts[0];","lastModifiedDate":"2023-09-07"},{"lineNumber":168,"author":{"gitId":"TyrusLye"},"content":" String status \u003d parts[1];","lastModifiedDate":"2023-09-07"},{"lineNumber":169,"author":{"gitId":"TyrusLye"},"content":" String description \u003d parts[2];","lastModifiedDate":"2023-09-07"},{"lineNumber":170,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":171,"author":{"gitId":"TyrusLye"},"content":" Task task \u003d null;","lastModifiedDate":"2023-09-07"},{"lineNumber":172,"author":{"gitId":"TyrusLye"},"content":" switch (type) {","lastModifiedDate":"2023-09-07"},{"lineNumber":173,"author":{"gitId":"TyrusLye"},"content":" case \"T\":","lastModifiedDate":"2023-09-07"},{"lineNumber":174,"author":{"gitId":"TyrusLye"},"content":" task \u003d new Todo(description);","lastModifiedDate":"2023-09-07"},{"lineNumber":175,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":176,"author":{"gitId":"TyrusLye"},"content":" case \"D\":","lastModifiedDate":"2023-09-07"},{"lineNumber":177,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003e\u003d 4) {","lastModifiedDate":"2023-09-07"},{"lineNumber":178,"author":{"gitId":"TyrusLye"},"content":" String by \u003d parts[3];","lastModifiedDate":"2023-09-07"},{"lineNumber":179,"author":{"gitId":"TyrusLye"},"content":" task \u003d new Deadline(description, LocalDateTime.parse(by, DateTimeFormatter.ofPattern(\"d/M/yyyy HHmm\")));","lastModifiedDate":"2023-09-07"},{"lineNumber":180,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":181,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":182,"author":{"gitId":"TyrusLye"},"content":" case \"E\":","lastModifiedDate":"2023-09-07"},{"lineNumber":183,"author":{"gitId":"TyrusLye"},"content":" if (parts.length \u003e\u003d 5) {","lastModifiedDate":"2023-09-07"},{"lineNumber":184,"author":{"gitId":"TyrusLye"},"content":" String from \u003d parts[3];","lastModifiedDate":"2023-09-07"},{"lineNumber":185,"author":{"gitId":"TyrusLye"},"content":" String to \u003d parts[4];","lastModifiedDate":"2023-09-07"},{"lineNumber":186,"author":{"gitId":"TyrusLye"},"content":" task \u003d new Event(description, from, to);","lastModifiedDate":"2023-09-07"},{"lineNumber":187,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":188,"author":{"gitId":"TyrusLye"},"content":" break;","lastModifiedDate":"2023-09-07"},{"lineNumber":189,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":190,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":191,"author":{"gitId":"TyrusLye"},"content":" if (task !\u003d null) {","lastModifiedDate":"2023-09-07"},{"lineNumber":192,"author":{"gitId":"TyrusLye"},"content":" if (status.equals(\"1\")) {","lastModifiedDate":"2023-09-07"},{"lineNumber":193,"author":{"gitId":"TyrusLye"},"content":" task.markDone();","lastModifiedDate":"2023-09-07"},{"lineNumber":194,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-09-07"},{"lineNumber":195,"author":{"gitId":"TyrusLye"},"content":" task.markNotDone();","lastModifiedDate":"2023-09-07"},{"lineNumber":196,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":197,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":198,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":199,"author":{"gitId":"TyrusLye"},"content":" return task;","lastModifiedDate":"2023-09-07"},{"lineNumber":200,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":201,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":202,"author":{"gitId":"TyrusLye"},"content":" private static void findTasks(ArrayList\u003cTask\u003e tasks, String keyword) {","lastModifiedDate":"2023-09-23"},{"lineNumber":203,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Here are the matching tasks in your list:\");","lastModifiedDate":"2023-09-23"},{"lineNumber":204,"author":{"gitId":"TyrusLye"},"content":" int count \u003d 0;","lastModifiedDate":"2023-09-23"},{"lineNumber":205,"author":{"gitId":"TyrusLye"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-23"},{"lineNumber":206,"author":{"gitId":"TyrusLye"},"content":" Task task \u003d tasks.get(i);","lastModifiedDate":"2023-09-23"},{"lineNumber":207,"author":{"gitId":"TyrusLye"},"content":" if (task.getDescription().contains(keyword)) {","lastModifiedDate":"2023-09-23"},{"lineNumber":208,"author":{"gitId":"TyrusLye"},"content":" System.out.println((count + 1) + \". \" + task);","lastModifiedDate":"2023-09-23"},{"lineNumber":209,"author":{"gitId":"TyrusLye"},"content":" count++;","lastModifiedDate":"2023-09-23"},{"lineNumber":210,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":211,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":212,"author":{"gitId":"TyrusLye"},"content":" if (count \u003d\u003d 0) {","lastModifiedDate":"2023-09-23"},{"lineNumber":213,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"No matching tasks found.\");","lastModifiedDate":"2023-09-23"},{"lineNumber":214,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":215,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":216,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":217,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":218,"author":{"gitId":"TyrusLye"},"content":" * Save tasks to a file.","lastModifiedDate":"2023-09-23"},{"lineNumber":219,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":220,"author":{"gitId":"TyrusLye"},"content":" * @param tasks The ArrayList of tasks to save.","lastModifiedDate":"2023-09-23"},{"lineNumber":221,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":222,"author":{"gitId":"TyrusLye"},"content":" private static void saveTasksToFile(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-09-07"},{"lineNumber":223,"author":{"gitId":"TyrusLye"},"content":" try {","lastModifiedDate":"2023-09-07"},{"lineNumber":224,"author":{"gitId":"TyrusLye"},"content":" FileWriter fileWriter \u003d new FileWriter(FILE_PATH);","lastModifiedDate":"2023-09-07"},{"lineNumber":225,"author":{"gitId":"TyrusLye"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-07"},{"lineNumber":226,"author":{"gitId":"TyrusLye"},"content":" fileWriter.write(task.toFileString() + System.lineSeparator());","lastModifiedDate":"2023-09-07"},{"lineNumber":227,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":228,"author":{"gitId":"TyrusLye"},"content":" fileWriter.close();","lastModifiedDate":"2023-09-07"},{"lineNumber":229,"author":{"gitId":"TyrusLye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-07"},{"lineNumber":230,"author":{"gitId":"TyrusLye"},"content":" // Handle IO exception","lastModifiedDate":"2023-09-07"},{"lineNumber":231,"author":{"gitId":"TyrusLye"},"content":" System.out.println(\"Error saving tasks to file: \" + e.getMessage());","lastModifiedDate":"2023-09-07"},{"lineNumber":232,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":233,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":234,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"},{"lineNumber":235,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":236,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":237,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":238,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":239,"author":{"gitId":"TyrusLye"},"content":" * Represents a task that can be added to the task list.","lastModifiedDate":"2023-09-23"},{"lineNumber":240,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":241,"author":{"gitId":"TyrusLye"},"content":"class Task {","lastModifiedDate":"2023-08-24"},{"lineNumber":242,"author":{"gitId":"TyrusLye"},"content":" protected String description;","lastModifiedDate":"2023-09-07"},{"lineNumber":243,"author":{"gitId":"TyrusLye"},"content":" protected boolean isDone;","lastModifiedDate":"2023-09-07"},{"lineNumber":244,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":245,"author":{"gitId":"TyrusLye"},"content":" protected LocalDateTime date;","lastModifiedDate":"2023-09-07"},{"lineNumber":246,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":247,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":248,"author":{"gitId":"TyrusLye"},"content":" return \"\";","lastModifiedDate":"2023-09-07"},{"lineNumber":249,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":250,"author":{"gitId":"TyrusLye"},"content":" public String formatDate() {","lastModifiedDate":"2023-09-07"},{"lineNumber":251,"author":{"gitId":"TyrusLye"},"content":" return date.format(DateTimeFormatter.ofPattern(\"MMM dd yyyy\"));","lastModifiedDate":"2023-09-07"},{"lineNumber":252,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":253,"author":{"gitId":"TyrusLye"},"content":" public Task(String description, LocalDateTime date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":254,"author":{"gitId":"TyrusLye"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-24"},{"lineNumber":255,"author":{"gitId":"TyrusLye"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-24"},{"lineNumber":256,"author":{"gitId":"TyrusLye"},"content":" this.date \u003d date;","lastModifiedDate":"2023-09-07"},{"lineNumber":257,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":258,"author":{"gitId":"TyrusLye"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-24"},{"lineNumber":259,"author":{"gitId":"TyrusLye"},"content":" return (isDone ? \"[X]\" : \"[ ]\"); // Return a tick or cross symbol cuz im lazy like that, or its easier. idk","lastModifiedDate":"2023-08-24"},{"lineNumber":260,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":261,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":262,"author":{"gitId":"TyrusLye"},"content":" * Get the description of the task.","lastModifiedDate":"2023-09-23"},{"lineNumber":263,"author":{"gitId":"TyrusLye"},"content":" *","lastModifiedDate":"2023-09-23"},{"lineNumber":264,"author":{"gitId":"TyrusLye"},"content":" * @return The description of the task.","lastModifiedDate":"2023-09-23"},{"lineNumber":265,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":266,"author":{"gitId":"TyrusLye"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-23"},{"lineNumber":267,"author":{"gitId":"TyrusLye"},"content":" return description;","lastModifiedDate":"2023-09-23"},{"lineNumber":268,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":269,"author":{"gitId":"TyrusLye"},"content":" public boolean isDone() {","lastModifiedDate":"2023-08-24"},{"lineNumber":270,"author":{"gitId":"TyrusLye"},"content":" return isDone;","lastModifiedDate":"2023-08-24"},{"lineNumber":271,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":272,"author":{"gitId":"TyrusLye"},"content":" public void markDone() {","lastModifiedDate":"2023-08-24"},{"lineNumber":273,"author":{"gitId":"TyrusLye"},"content":" isDone \u003d true;","lastModifiedDate":"2023-08-24"},{"lineNumber":274,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":275,"author":{"gitId":"TyrusLye"},"content":" public void markNotDone() {","lastModifiedDate":"2023-08-24"},{"lineNumber":276,"author":{"gitId":"TyrusLye"},"content":" isDone \u003d false;","lastModifiedDate":"2023-08-24"},{"lineNumber":277,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":278,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":279,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":280,"author":{"gitId":"TyrusLye"},"content":" return \"[\" + (isDone ? \"X\" : \" \") + \"] \" + description;","lastModifiedDate":"2023-08-24"},{"lineNumber":281,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":282,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":283,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":284,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":285,"author":{"gitId":"TyrusLye"},"content":" * Represents a Todo task.","lastModifiedDate":"2023-09-23"},{"lineNumber":286,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":287,"author":{"gitId":"TyrusLye"},"content":"class Todo extends Task {","lastModifiedDate":"2023-09-07"},{"lineNumber":288,"author":{"gitId":"TyrusLye"},"content":" public Todo(String description) {","lastModifiedDate":"2023-08-24"},{"lineNumber":289,"author":{"gitId":"TyrusLye"},"content":" super(description,null);","lastModifiedDate":"2023-09-07"},{"lineNumber":290,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":291,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":292,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":293,"author":{"gitId":"TyrusLye"},"content":" return \"T | \" + (isDone ? \"1\" : \"0\") + \" | \" + description;","lastModifiedDate":"2023-09-07"},{"lineNumber":294,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":295,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":296,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":297,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":298,"author":{"gitId":"TyrusLye"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-24"},{"lineNumber":299,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":300,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":301,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":302,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":303,"author":{"gitId":"TyrusLye"},"content":" * Represents a Deadline task.","lastModifiedDate":"2023-09-23"},{"lineNumber":304,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":305,"author":{"gitId":"TyrusLye"},"content":"class Deadline extends Task {","lastModifiedDate":"2023-09-07"},{"lineNumber":306,"author":{"gitId":"TyrusLye"},"content":" protected String by;","lastModifiedDate":"2023-08-24"},{"lineNumber":307,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":308,"author":{"gitId":"TyrusLye"},"content":" public Deadline(String description, LocalDateTime date) {","lastModifiedDate":"2023-09-07"},{"lineNumber":309,"author":{"gitId":"TyrusLye"},"content":" super(description, date);","lastModifiedDate":"2023-09-07"},{"lineNumber":310,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":311,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":312,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":313,"author":{"gitId":"TyrusLye"},"content":" return \"D | \" + (isDone ? \"1\" : \"0\") + \" | \" + description + \" | \" + date;","lastModifiedDate":"2023-09-07"},{"lineNumber":314,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":315,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":316,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":317,"author":{"gitId":"TyrusLye"},"content":" return \"[D]\" + super.toString() + \" (by: \" + date + \")\";","lastModifiedDate":"2023-09-07"},{"lineNumber":318,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":319,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":320,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":321,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":322,"author":{"gitId":"TyrusLye"},"content":" * Represents an Event task.","lastModifiedDate":"2023-09-23"},{"lineNumber":323,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":324,"author":{"gitId":"TyrusLye"},"content":"class Event extends Task {","lastModifiedDate":"2023-09-07"},{"lineNumber":325,"author":{"gitId":"TyrusLye"},"content":" protected String from;","lastModifiedDate":"2023-08-24"},{"lineNumber":326,"author":{"gitId":"TyrusLye"},"content":" protected String to;","lastModifiedDate":"2023-08-24"},{"lineNumber":327,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-07"},{"lineNumber":328,"author":{"gitId":"TyrusLye"},"content":" public Event(String description, String from, String to) {","lastModifiedDate":"2023-08-24"},{"lineNumber":329,"author":{"gitId":"TyrusLye"},"content":" super(description,null);","lastModifiedDate":"2023-09-07"},{"lineNumber":330,"author":{"gitId":"TyrusLye"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-24"},{"lineNumber":331,"author":{"gitId":"TyrusLye"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-24"},{"lineNumber":332,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":333,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-07"},{"lineNumber":334,"author":{"gitId":"TyrusLye"},"content":" public String toFileString() {","lastModifiedDate":"2023-09-07"},{"lineNumber":335,"author":{"gitId":"TyrusLye"},"content":" return \"E | \" + (isDone ? \"1\" : \"0\") + \" | \" + description + \" | \" + from + \" | \" + to;","lastModifiedDate":"2023-09-07"},{"lineNumber":336,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-07"},{"lineNumber":337,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-08-24"},{"lineNumber":338,"author":{"gitId":"TyrusLye"},"content":" public String toString() {","lastModifiedDate":"2023-08-24"},{"lineNumber":339,"author":{"gitId":"TyrusLye"},"content":" return \"[E]\" + super.toString() + \" (from: \" + from + \" to: \" + to + \")\";","lastModifiedDate":"2023-08-24"},{"lineNumber":340,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":341,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"},{"lineNumber":342,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":343,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":344,"author":{"gitId":"TyrusLye"},"content":" * Custom exception class for Duke-specific exceptions.","lastModifiedDate":"2023-09-23"},{"lineNumber":345,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":346,"author":{"gitId":"TyrusLye"},"content":"class DukeException extends Exception {","lastModifiedDate":"2023-08-24"},{"lineNumber":347,"author":{"gitId":"TyrusLye"},"content":" public DukeException(String message) {","lastModifiedDate":"2023-08-24"},{"lineNumber":348,"author":{"gitId":"TyrusLye"},"content":" super(message);","lastModifiedDate":"2023-08-24"},{"lineNumber":349,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":350,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"TyrusLye":346,"-":4}},{"path":"src/main/java/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-23"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"public class Launcher {","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":" Application.launch(Main.class, args);","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":10}},{"path":"src/main/java/Main.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"import javafx.fxml.FXMLLoader;","lastModifiedDate":"2023-09-23"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":" * A GUI for Duke using FXML.","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":"public class Main extends Application {","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":" private Duke duke \u003d new Duke();","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" @Override","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" try {","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":" FXMLLoader fxmlLoader \u003d new FXMLLoader(Main.class.getResource(\"/view/MainWindow.fxml\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" AnchorPane ap \u003d fxmlLoader.load();","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" Scene scene \u003d new Scene(ap);","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" fxmlLoader.\u003cMainWindow\u003egetController().setDuke(duke);","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" stage.show();","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":28,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":29}},{"path":"src/main/java/MainWindow.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"import javafx.animation.PauseTransition;","lastModifiedDate":"2023-09-27"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-27"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"import javafx.fxml.FXML;","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-23"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-27"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":"import javafx.util.Duration;","lastModifiedDate":"2023-09-27"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":"import java.util.Objects;","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":"/**","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" * Controller for MainWindow. Provides the layout for the other controls.","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":"public class MainWindow extends AnchorPane {","lastModifiedDate":"2023-09-23"},{"lineNumber":20,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":21,"author":{"gitId":"TyrusLye"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-23"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-23"},{"lineNumber":24,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-23"},{"lineNumber":26,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-23"},{"lineNumber":28,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":29,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":30,"author":{"gitId":"TyrusLye"},"content":" private Duke duke;","lastModifiedDate":"2023-09-23"},{"lineNumber":31,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":32,"author":{"gitId":"TyrusLye"},"content":" private Image userImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/crying.png\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":33,"author":{"gitId":"TyrusLye"},"content":" private Image dukeImage \u003d new Image(this.getClass().getResourceAsStream(\"/images/screaming.png\"));","lastModifiedDate":"2023-09-23"},{"lineNumber":34,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":35,"author":{"gitId":"TyrusLye"},"content":" public void initialize() {","lastModifiedDate":"2023-09-23"},{"lineNumber":36,"author":{"gitId":"TyrusLye"},"content":" scrollPane.vvalueProperty().bind(dialogContainer.heightProperty());","lastModifiedDate":"2023-09-23"},{"lineNumber":37,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":38,"author":{"gitId":"TyrusLye"},"content":" String greetingMessage \u003d","lastModifiedDate":"2023-09-27"},{"lineNumber":39,"author":{"gitId":"TyrusLye"},"content":" \"Wazzup! It\u0027s\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":40,"author":{"gitId":"TyrusLye"},"content":" + \"##__________##__########_______########______#######_____#####_\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":41,"author":{"gitId":"TyrusLye"},"content":" + \"##__________##__##________##_____##________##__##_________##____##____\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":42,"author":{"gitId":"TyrusLye"},"content":" + \"##__________##__##________##_____##________##__##_________##____##____\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":43,"author":{"gitId":"TyrusLye"},"content":" + \"##__________##__########_______########____##__________##____##____\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":44,"author":{"gitId":"TyrusLye"},"content":" + \"##__________##__##______##_______##________##__##_________##____##____\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":45,"author":{"gitId":"TyrusLye"},"content":" + \"##__________##__##________##_____##________##__##_________##____##____\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":46,"author":{"gitId":"TyrusLye"},"content":" + \"__#######______##__________##___########______#######_____#####_\\n\"","lastModifiedDate":"2023-09-27"},{"lineNumber":47,"author":{"gitId":"TyrusLye"},"content":" + \"What can I do for you mah man?\";","lastModifiedDate":"2023-09-27"},{"lineNumber":48,"author":{"gitId":"TyrusLye"},"content":" dialogContainer.getChildren().addAll(DialogBox.getDukeDialog(greetingMessage, dukeImage));","lastModifiedDate":"2023-09-27"},{"lineNumber":49,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-27"},{"lineNumber":50,"author":{"gitId":"TyrusLye"},"content":" public void setDuke(Duke d) {","lastModifiedDate":"2023-09-23"},{"lineNumber":51,"author":{"gitId":"TyrusLye"},"content":" duke \u003d d;","lastModifiedDate":"2023-09-23"},{"lineNumber":52,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":53,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":54,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":55,"author":{"gitId":"TyrusLye"},"content":" /**","lastModifiedDate":"2023-09-23"},{"lineNumber":56,"author":{"gitId":"TyrusLye"},"content":" * Creates two dialog boxes, one echoing user input and the other containing Duke\u0027s reply and then appends them to","lastModifiedDate":"2023-09-23"},{"lineNumber":57,"author":{"gitId":"TyrusLye"},"content":" * the dialog container. Clears the user input after processing.","lastModifiedDate":"2023-09-23"},{"lineNumber":58,"author":{"gitId":"TyrusLye"},"content":" */","lastModifiedDate":"2023-09-23"},{"lineNumber":59,"author":{"gitId":"TyrusLye"},"content":" @FXML","lastModifiedDate":"2023-09-23"},{"lineNumber":60,"author":{"gitId":"TyrusLye"},"content":" private void handleUserInput() {","lastModifiedDate":"2023-09-23"},{"lineNumber":61,"author":{"gitId":"TyrusLye"},"content":" String input \u003d userInput.getText();","lastModifiedDate":"2023-09-23"},{"lineNumber":62,"author":{"gitId":"TyrusLye"},"content":" String response \u003d duke.getResponse(input);","lastModifiedDate":"2023-09-23"},{"lineNumber":63,"author":{"gitId":"TyrusLye"},"content":" if (input.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-09-27"},{"lineNumber":64,"author":{"gitId":"TyrusLye"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-23"},{"lineNumber":65,"author":{"gitId":"TyrusLye"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-23"},{"lineNumber":66,"author":{"gitId":"TyrusLye"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-23"},{"lineNumber":67,"author":{"gitId":"TyrusLye"},"content":" );","lastModifiedDate":"2023-09-23"},{"lineNumber":68,"author":{"gitId":"TyrusLye"},"content":" PauseTransition delay \u003d new PauseTransition(Duration.seconds(2));","lastModifiedDate":"2023-09-27"},{"lineNumber":69,"author":{"gitId":"TyrusLye"},"content":" delay.setOnFinished(event -\u003e Platform.exit());","lastModifiedDate":"2023-09-27"},{"lineNumber":70,"author":{"gitId":"TyrusLye"},"content":" delay.play();","lastModifiedDate":"2023-09-27"},{"lineNumber":71,"author":{"gitId":"TyrusLye"},"content":" } else {","lastModifiedDate":"2023-09-27"},{"lineNumber":72,"author":{"gitId":"TyrusLye"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-27"},{"lineNumber":73,"author":{"gitId":"TyrusLye"},"content":" DialogBox.getUserDialog(input, userImage),","lastModifiedDate":"2023-09-27"},{"lineNumber":74,"author":{"gitId":"TyrusLye"},"content":" DialogBox.getDukeDialog(response, dukeImage)","lastModifiedDate":"2023-09-27"},{"lineNumber":75,"author":{"gitId":"TyrusLye"},"content":" );","lastModifiedDate":"2023-09-27"},{"lineNumber":76,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-27"},{"lineNumber":77,"author":{"gitId":"TyrusLye"},"content":" userInput.clear();","lastModifiedDate":"2023-09-23"},{"lineNumber":78,"author":{"gitId":"TyrusLye"},"content":" }","lastModifiedDate":"2023-09-23"},{"lineNumber":79,"author":{"gitId":"TyrusLye"},"content":"}","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":79}},{"path":"src/main/java/tasks.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"T | 0 | thing","lastModifiedDate":"2023-09-07"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"E | 0 | thing2 | now | later","lastModifiedDate":"2023-09-07"}],"authorContributionMap":{"TyrusLye":2}},{"path":"src/main/resources/view/DialogBox.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.geometry.Insets?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.control.Label?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.image.ImageView?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.layout.HBox?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"\u003cfx:root alignment\u003d\"TOP_RIGHT\" maxHeight\u003d\"1.7976931348623157E308\" maxWidth\u003d\"1.7976931348623157E308\" prefWidth\u003d\"400.0\" type\u003d\"javafx.scene.layout.HBox\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\"\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":" \u003cLabel fx:id\u003d\"dialog\" text\u003d\"Label\" wrapText\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":" \u003cImageView fx:id\u003d\"displayPicture\" fitHeight\u003d\"99.0\" fitWidth\u003d\"99.0\" pickOnBounds\u003d\"true\" preserveRatio\u003d\"true\" /\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":" \u003cpadding\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":" \u003cInsets bottom\u003d\"15.0\" left\u003d\"5.0\" right\u003d\"5.0\" top\u003d\"15.0\" /\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":" \u003c/padding\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":"\u003c/fx:root\u003e","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":16}},{"path":"src/main/resources/view/MainWindow.fxml","fileType":"fxml","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":2,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.control.Button?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.control.ScrollPane?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.control.TextField?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":6,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.layout.AnchorPane?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":7,"author":{"gitId":"TyrusLye"},"content":"\u003c?import javafx.scene.layout.VBox?\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":8,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-09-23"},{"lineNumber":9,"author":{"gitId":"TyrusLye"},"content":"\u003cAnchorPane maxHeight\u003d\"-Infinity\" maxWidth\u003d\"-Infinity\" minHeight\u003d\"-Infinity\" minWidth\u003d\"-Infinity\" prefHeight\u003d\"600.0\" prefWidth\u003d\"1000.0\" xmlns\u003d\"http://javafx.com/javafx/17\" xmlns:fx\u003d\"http://javafx.com/fxml/1\" fx:controller\u003d\"MainWindow\"\u003e","lastModifiedDate":"2023-09-27"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":" \u003cchildren\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":11,"author":{"gitId":"TyrusLye"},"content":" \u003cTextField fx:id\u003d\"userInput\" layoutY\u003d\"558.0\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"924.0\" AnchorPane.bottomAnchor\u003d\"1.0\" /\u003e","lastModifiedDate":"2023-09-27"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":" \u003cButton fx:id\u003d\"sendButton\" layoutX\u003d\"924.0\" layoutY\u003d\"558.0\" mnemonicParsing\u003d\"false\" onAction\u003d\"#handleUserInput\" prefHeight\u003d\"41.0\" prefWidth\u003d\"76.0\" text\u003d\"Send\" /\u003e","lastModifiedDate":"2023-09-27"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":" \u003cScrollPane fx:id\u003d\"scrollPane\" hbarPolicy\u003d\"NEVER\" hvalue\u003d\"1.0\" prefHeight\u003d\"557.0\" prefWidth\u003d\"1000.0\" vvalue\u003d\"1.0\"\u003e","lastModifiedDate":"2023-09-27"},{"lineNumber":14,"author":{"gitId":"TyrusLye"},"content":" \u003ccontent\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":15,"author":{"gitId":"TyrusLye"},"content":" \u003cVBox fx:id\u003d\"dialogContainer\" prefHeight\u003d\"552.0\" prefWidth\u003d\"988.0\" /\u003e","lastModifiedDate":"2023-09-27"},{"lineNumber":16,"author":{"gitId":"TyrusLye"},"content":" \u003c/content\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":17,"author":{"gitId":"TyrusLye"},"content":" \u003c/ScrollPane\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":18,"author":{"gitId":"TyrusLye"},"content":" \u003c/children\u003e","lastModifiedDate":"2023-09-23"},{"lineNumber":19,"author":{"gitId":"TyrusLye"},"content":"\u003c/AnchorPane\u003e","lastModifiedDate":"2023-09-23"}],"authorContributionMap":{"TyrusLye":19}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"TyrusLye"},"content":"deadline do homework /by no idea :-p","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"TyrusLye":1}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"TyrusLye"},"content":"SET \"JAVA_HOME\u003dC:\\Program Files\\Java\\jdk-11.0.16\"","lastModifiedDate":"2023-08-24"},{"lineNumber":4,"author":{"gitId":"TyrusLye"},"content":"SET \"PATH\u003d%JAVA_HOME%\\bin;%PATH%\"","lastModifiedDate":"2023-08-24"},{"lineNumber":5,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"TyrusLye"},"content":"del ACTUAL.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"TyrusLye"},"content":"javac -cp ..\\src\\main\\java -encoding UTF-8 -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2023-08-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"java -classpath ..\\bin Duke \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"TyrusLye"},"content":"","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"TyrusLye":6,"-":19}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"TyrusLye"},"content":" rm ACTUAL.TXT.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"TyrusLye"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":23,"author":{"gitId":"TyrusLye"},"content":"java -classpath ../bin Duke \u003c input.txt \u003e ACTUAL.TXT.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"TyrusLye"},"content":"dos2unix ACTUAL.TXT.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"TyrusLye"},"content":"diff ACTUAL.TXT.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2023-08-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"TyrusLye":5,"-":33}},{"path":"tasks.txt","fileType":"txt","isBinary":true,"lines":[],"authorContributionMap":{"TyrusLye":0}}] diff --git a/TyrusLye_ip_master/commits.json b/TyrusLye_ip_master/commits.json index c077ec9e..60eae108 100644 --- a/TyrusLye_ip_master/commits.json +++ b/TyrusLye_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"TyrusLye":[{"date":"2023-08-23","commitResults":[{"hash":"86640144c11f7431c50fc0afc2b48f65f5767f70","isMergeCommit":false,"messageTitle":"Level-0","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":5}}}]},{"date":"2023-08-24","commitResults":[{"hash":"892b284458060f9cb03faed33c75fc0098ef2501","isMergeCommit":false,"messageTitle":"Level-1","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":4}}},{"hash":"3f2274998099033a5d4009c04e021d63904640b8","isMergeCommit":false,"messageTitle":"Level-2","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":5}}},{"hash":"bfe5fea65309fe69ddf92ff458a5b4fa81e9d5f7","isMergeCommit":false,"messageTitle":"Level-3","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":47,"deletions":7}}},{"hash":"12b399ed10f1eee6a413e2f5684377d47194ada8","isMergeCommit":false,"messageTitle":"Level-4","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":62,"deletions":2}}},{"hash":"9a3f089d0b6a010f7d3aa6661b5b59a669600820","isMergeCommit":false,"messageTitle":"A-TextUiTesting","messageBody":"Not gonna lie. it doesnt work and i dont know why\n","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":0,"deletions":1},"bat":{"insertions":6,"deletions":2},"sh":{"insertions":5,"deletions":5}}},{"hash":"3f9bc7323625312e4dadac7381e20aa37ceef999","isMergeCommit":false,"messageTitle":"Level-5","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":56,"deletions":43}}},{"hash":"c8920e933d5b6774e484f664133577477b5ec29e","isMergeCommit":false,"messageTitle":"Level-6","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}}]},{"date":"2023-09-07","commitResults":[{"hash":"937f61cb3514fc5a3f853e83d9383188ae0808ef","isMergeCommit":false,"messageTitle":"it doesnt work and i hate my life","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":60,"deletions":6}}},{"hash":"f0cc53b08e95f413341d68027053c9c82f81831e","isMergeCommit":false,"messageTitle":"Level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":92,"deletions":57}}},{"hash":"5310a442958b82095017fe26ab6dab93089571cf","isMergeCommit":false,"messageTitle":"Level-8","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":31,"deletions":12}}}]},{"date":"2023-09-10","commitResults":[{"hash":"1579d0c96f59dc2b120c8f87e42bd82db40aad3c","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-11","commitResults":[{"hash":"6ff52fa9cc66789cd02c5d58b9097879c7b3ffbe","isMergeCommit":false,"messageTitle":"Add-gradle","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":5,"deletions":5}}}]},{"date":"2023-09-23","commitResults":[{"hash":"22c309f69a5aeb5627567416ae95ae65a4d940d4","isMergeCommit":false,"messageTitle":"A-JavaDoc","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":2}}},{"hash":"bc05937f3c27760ffe8b69f0a39afa0c4265de8a","isMergeCommit":false,"messageTitle":"Level-9","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":47,"deletions":8}}},{"hash":"918f5c8379487269ef70848774c307b3c4f9c4b6","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":23,"deletions":20}}},{"hash":"47a247e0445ebb3371f2464368bb914dfc59b9b8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}}]}]},"authorFileTypeContributionMap":{"TyrusLye":{"java":339,"md":23,"fxml":0,"sh":5,"bat":6,"gradle":1,"txt":3}},"authorContributionVariance":{"TyrusLye":4300.5093},"authorDisplayNameMap":{"TyrusLye":"CS2103T-T13-4 TYRU.. QIN"}} +{"authorDailyContributionsMap":{"TyrusLye":[{"date":"2023-08-23","commitResults":[{"hash":"86640144c11f7431c50fc0afc2b48f65f5767f70","isMergeCommit":false,"messageTitle":"Level-0","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":10,"deletions":5}}}]},{"date":"2023-08-24","commitResults":[{"hash":"892b284458060f9cb03faed33c75fc0098ef2501","isMergeCommit":false,"messageTitle":"Level-1","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":21,"deletions":4}}},{"hash":"3f2274998099033a5d4009c04e021d63904640b8","isMergeCommit":false,"messageTitle":"Level-2","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":5}}},{"hash":"bfe5fea65309fe69ddf92ff458a5b4fa81e9d5f7","isMergeCommit":false,"messageTitle":"Level-3","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":47,"deletions":7}}},{"hash":"12b399ed10f1eee6a413e2f5684377d47194ada8","isMergeCommit":false,"messageTitle":"Level-4","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":62,"deletions":2}}},{"hash":"9a3f089d0b6a010f7d3aa6661b5b59a669600820","isMergeCommit":false,"messageTitle":"A-TextUiTesting","messageBody":"Not gonna lie. it doesnt work and i dont know why\n","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":0,"deletions":1},"bat":{"insertions":6,"deletions":2},"sh":{"insertions":5,"deletions":5}}},{"hash":"3f9bc7323625312e4dadac7381e20aa37ceef999","isMergeCommit":false,"messageTitle":"Level-5","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":56,"deletions":43}}},{"hash":"c8920e933d5b6774e484f664133577477b5ec29e","isMergeCommit":false,"messageTitle":"Level-6","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":9,"deletions":0}}}]},{"date":"2023-09-07","commitResults":[{"hash":"937f61cb3514fc5a3f853e83d9383188ae0808ef","isMergeCommit":false,"messageTitle":"it doesnt work and i hate my life","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":60,"deletions":6}}},{"hash":"f0cc53b08e95f413341d68027053c9c82f81831e","isMergeCommit":false,"messageTitle":"Level-7","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":92,"deletions":57}}},{"hash":"5310a442958b82095017fe26ab6dab93089571cf","isMergeCommit":false,"messageTitle":"Level-8","messageBody":"","tags":["Level-8"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":31,"deletions":12}}}]},{"date":"2023-09-10","commitResults":[{"hash":"1579d0c96f59dc2b120c8f87e42bd82db40aad3c","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-09-11","commitResults":[{"hash":"6ff52fa9cc66789cd02c5d58b9097879c7b3ffbe","isMergeCommit":false,"messageTitle":"Add-gradle","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":5,"deletions":5}}}]},{"date":"2023-09-23","commitResults":[{"hash":"22c309f69a5aeb5627567416ae95ae65a4d940d4","isMergeCommit":false,"messageTitle":"A-JavaDoc","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":36,"deletions":2}}},{"hash":"bc05937f3c27760ffe8b69f0a39afa0c4265de8a","isMergeCommit":false,"messageTitle":"Level-9","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":0},"java":{"insertions":47,"deletions":8}}},{"hash":"918f5c8379487269ef70848774c307b3c4f9c4b6","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":23,"deletions":20}}},{"hash":"47a247e0445ebb3371f2464368bb914dfc59b9b8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","tags":["A-Jar"],"fileTypesAndContributionMap":{"md":{"insertions":1,"deletions":1}}},{"hash":"ccd2127a129100a7f042c32555d00c980f3f5edb","isMergeCommit":false,"messageTitle":"Just gonna commit this one before I start messing things up too much","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":17,"deletions":1},"fxml":{"insertions":35,"deletions":0},"java":{"insertions":233,"deletions":79}}},{"hash":"724286a8be2d63dc70e1595340761555a7e67158","isMergeCommit":false,"messageTitle":"Level-10","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"java":{"insertions":19,"deletions":18}}}]},{"date":"2023-09-27","commitResults":[{"hash":"d9e7d80c5126ec87690fcee14859d2415f63dfc9","isMergeCommit":false,"messageTitle":"Just bug fixes honestly","messageBody":"","fileTypesAndContributionMap":{"fxml":{"insertions":5,"deletions":5},"java":{"insertions":33,"deletions":6}}},{"hash":"25866f1d66409d510b4d537edbd5c5c05cb1278c","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/TyrusLye/ip","messageBody":"","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"TyrusLye":{"java":523,"md":23,"fxml":35,"sh":5,"bat":6,"gradle":17,"txt":3}},"authorContributionVariance":{"TyrusLye":10133.71},"authorDisplayNameMap":{"TyrusLye":"CS2103T-T13-4 TYRU.. QIN"}} diff --git a/andytoh1_ip_master/authorship.json b/andytoh1_ip_master/authorship.json index c18a9e2d..af09ba9d 100644 --- a/andytoh1_ip_master/authorship.json +++ b/andytoh1_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" implementation \u0027org.testng:testng:7.1.0\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" testImplementation \u0027org.mockito:mockito-core:3.12.4\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" String javaFxVersion \u003d \u002717.0.8\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" implementation \u0027org.openjfx:javafx-controls:17.0.8\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" mainClassName \u003d \"Launcher\"","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" archiveFileName \u003d \"Chatbot.jar\"","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":56,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"andytoh1":20,"-":40}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# User Guide","lastModifiedDate":"2019-07-29"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"Chatbot is a chatbot that helps to keep track of your tasks. ","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2019-07-29"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"### Adding a to-do: `todo `","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"Adds a task without any time constraints to the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":"Format: `todo TASK_DESCRIPTION`","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":"`todo read book`","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"### Adding a deadline task: `deadline`","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":"Adds a task with a specific time by which it has to be done.","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"Format: `deadline TASK_DESCRIPTION /by DD-MM-YYYY HH:MM`","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":"- Time is given in 24-hour format.","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":"`deadline read book by 19-09-2023 18:00`","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":"### Adding an event: `event`","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":"Adds a task with specific start and end times.","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":"Format: `event TASK_DESCRIPTION /from DD-MM-YYYY HH:MM /to DD-MM-YYYY HH:MM`","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":"- Time is given in 24-hour format.","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":"`event read book /from 20-12-2023 12:00 /to 20-12-2023 15:00`","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":"### Viewing list of tasks: `list`","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":"Displays the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":"Format: `list`","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":"### Deleting tasks from list: `delete`","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":"Deletes the task at the specified index in the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":"Format: `delete INDEX`","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be greater than 0.","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be smaller than the last number in the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":54,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2019-07-29"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":"`delete 3`","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":"### Mark tasks: `mark`","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":"Marks a task at the given index in the list as done.","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":"Format: `mark INDEX`","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be greater than 0.","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be smaller than the last number in the list .","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":"- Tasks are marked as done with an \"X\".","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":"`mark 1`","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":"### Locating a task: `find`","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":"Searches for a task by description.","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":"- Search is case-sensitive.","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":"- The order of search terms matter.","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":"- A match will happen if the search term matches any substring exactly.","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":"### Exit program: `bye`","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":"Closes the chatbot.","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":"Format: `bye`","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":59,"-":22}},{"path":"src/main/java/Chatbot.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"import java.io.FileNotFoundException;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"import java.io.File;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"import javafx.event.EventTarget;","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":"public class Chatbot extends Application {","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" private Scene scene;","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" private Image user \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaUser.png\"));","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" private Image duke \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaDuke.png\"));","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" public Chatbot() {","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" Storage.load(taskList);","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" Ui.startMessage();","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" Scanner userInput \u003d new Scanner(System.in);","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" while (true) {","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" String userMessage \u003d userInput.nextLine();","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" Parser.parse(userMessage, taskList);","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":" @Override","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" // Step 1. Setting up required components","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":" Storage.load(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":" initializeUI(stage);","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" setStage(stage);","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" setEventHandlers(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":" private void initializeUI(Stage stage) {","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":" scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" stage.show();","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" private void setStage(Stage stage) {","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" stage.setTitle(\"Chatbot\");","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":88,"author":{"gitId":"andytoh1"},"content":" scrollPane.setPrefSize(400, 570);","lastModifiedDate":"2023-09-26"},{"lineNumber":89,"author":{"gitId":"andytoh1"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-26"},{"lineNumber":90,"author":{"gitId":"andytoh1"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-26"},{"lineNumber":91,"author":{"gitId":"andytoh1"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":92,"author":{"gitId":"andytoh1"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-26"},{"lineNumber":93,"author":{"gitId":"andytoh1"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-26"},{"lineNumber":94,"author":{"gitId":"andytoh1"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":95,"author":{"gitId":"andytoh1"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":96,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":97,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":98,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":99,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setLeftAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":100,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":101,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":102,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":103,"author":{"gitId":"andytoh1"},"content":" private void setEventHandlers(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":104,"author":{"gitId":"andytoh1"},"content":" sendButton.setOnMouseClicked((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":105,"author":{"gitId":"andytoh1"},"content":" dialogContainer.getChildren().add(getDialogLabel(userInput.getText()));","lastModifiedDate":"2023-09-26"},{"lineNumber":106,"author":{"gitId":"andytoh1"},"content":" userInput.clear();","lastModifiedDate":"2023-09-26"},{"lineNumber":107,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":108,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":109,"author":{"gitId":"andytoh1"},"content":" userInput.setOnAction((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":110,"author":{"gitId":"andytoh1"},"content":" dialogContainer.getChildren().add(getDialogLabel(userInput.getText()));","lastModifiedDate":"2023-09-26"},{"lineNumber":111,"author":{"gitId":"andytoh1"},"content":" userInput.clear();","lastModifiedDate":"2023-09-26"},{"lineNumber":112,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":113,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":114,"author":{"gitId":"andytoh1"},"content":" dialogContainer.heightProperty().addListener((observable) -\u003e scrollPane.setVvalue(1.0));","lastModifiedDate":"2023-09-26"},{"lineNumber":115,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":116,"author":{"gitId":"andytoh1"},"content":" sendButton.setOnMouseClicked((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":117,"author":{"gitId":"andytoh1"},"content":" handleUserInput(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":118,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":119,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":120,"author":{"gitId":"andytoh1"},"content":" userInput.setOnAction((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":121,"author":{"gitId":"andytoh1"},"content":" handleUserInput(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":122,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":123,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":124,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":125,"author":{"gitId":"andytoh1"},"content":" // more code to be added here later","lastModifiedDate":"2023-09-26"},{"lineNumber":126,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":127,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":128,"author":{"gitId":"andytoh1"},"content":" private Label getDialogLabel(String text) {","lastModifiedDate":"2023-09-26"},{"lineNumber":129,"author":{"gitId":"andytoh1"},"content":" // You will need to import `javafx.scene.control.Label`.","lastModifiedDate":"2023-09-26"},{"lineNumber":130,"author":{"gitId":"andytoh1"},"content":" Label textToAdd \u003d new Label(text);","lastModifiedDate":"2023-09-26"},{"lineNumber":131,"author":{"gitId":"andytoh1"},"content":" textToAdd.setWrapText(true);","lastModifiedDate":"2023-09-26"},{"lineNumber":132,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":133,"author":{"gitId":"andytoh1"},"content":" return textToAdd;","lastModifiedDate":"2023-09-26"},{"lineNumber":134,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":135,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":136,"author":{"gitId":"andytoh1"},"content":" private void handleUserInput(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":137,"author":{"gitId":"andytoh1"},"content":" Label userText \u003d new Label(userInput.getText());","lastModifiedDate":"2023-09-26"},{"lineNumber":138,"author":{"gitId":"andytoh1"},"content":" Label dukeText \u003d new Label(getResponse(userInput.getText(), taskList));","lastModifiedDate":"2023-09-26"},{"lineNumber":139,"author":{"gitId":"andytoh1"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-26"},{"lineNumber":140,"author":{"gitId":"andytoh1"},"content":" DialogBox.getUserDialog(userText, new ImageView(user)),","lastModifiedDate":"2023-09-26"},{"lineNumber":141,"author":{"gitId":"andytoh1"},"content":" DialogBox.getDukeDialog(dukeText, new ImageView(duke))","lastModifiedDate":"2023-09-26"},{"lineNumber":142,"author":{"gitId":"andytoh1"},"content":" );","lastModifiedDate":"2023-09-26"},{"lineNumber":143,"author":{"gitId":"andytoh1"},"content":" userInput.clear();","lastModifiedDate":"2023-09-26"},{"lineNumber":144,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":145,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":146,"author":{"gitId":"andytoh1"},"content":" private String getResponse(String input, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":147,"author":{"gitId":"andytoh1"},"content":" return Parser.parse(input, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":148,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":149,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"andytoh1":149}},{"path":"src/main/java/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" * Class for Deadline task.","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" private LocalDateTime deadline;","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" public Deadline(String description, LocalDateTime deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" super(description);","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" this.deadline \u003d deadline;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return super.getDescription() + \" (by: \" + deadline.format(formatter) + \")\";","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" public String getDeadline() {","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return deadline.format(formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" public String getDescriptionWithoutTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" return super.getDescription();","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":29}},{"path":"src/main/java/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" private Label text;","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public DialogBox(Label l, ImageView iv) {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" text \u003d l;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" displayPicture \u003d iv;","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" text.setWrapText(true);","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" displayPicture.setFitWidth(100.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" displayPicture.setFitHeight(100.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" this.setAlignment(Pos.TOP_RIGHT);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" this.getChildren().addAll(text, displayPicture);","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" private void flip() {","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" this.setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" FXCollections.reverse(tmp);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" this.getChildren().setAll(tmp);","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" public static DialogBox getUserDialog(Label l, ImageView iv) {","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" return new DialogBox(l, iv);","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" public static DialogBox getDukeDialog(Label l, ImageView iv) {","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" var db \u003d new DialogBox(l, iv);","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" db.flip();","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" return db;","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":45}},{"path":"src/main/java/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" * Class for Event task.","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"public class Event extends Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" private LocalDateTime startTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" private LocalDateTime endTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public Event(String description, LocalDateTime startTime, LocalDateTime endTime) {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" super(description);","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" this.startTime \u003d startTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" this.endTime \u003d endTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return super.getDescription() + \" (from: \" + startTime.format(formatter) + \" to: \"","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" + endTime.format(formatter) + \")\";","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" public String getStartTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" return startTime.format(formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" public String getEndTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" return endTime.format(formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" public String getDescriptionWithoutTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" return super.getDescription();","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":38}},{"path":"src/main/java/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"public class Launcher {","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" Application.launch(Chatbot.class, args);","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":10}},{"path":"src/main/java/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" * Class for reading user input.","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"public class Parser {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" * Parses any user input.","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" * @param userMessage Input of the user.","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" * @param taskList TaskList with all the current tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public static String parse (String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" assert userMessage.length() \u003e 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"dd-MM-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" if (userMessage.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return Ui.endMessage();","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" if (userMessage.equalsIgnoreCase(\"list\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" return Ui.listTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" if (userMessage.substring(0, 6).equalsIgnoreCase(\"delete\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" int removeTask \u003d Integer.parseInt(userMessage.substring(7)) - 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" return Ui.deleteMessage(removeTask, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 4).equalsIgnoreCase(\"find\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" return Ui.findMessage(userMessage.substring(5), taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" }else if (userMessage.substring(0, 4).equalsIgnoreCase(\"mark\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" int doneTask \u003d Integer.parseInt(userMessage.substring(5)) - 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" return Ui.markMessage(doneTask, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 4).equalsIgnoreCase(\"todo\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" return parseTodo(userMessage, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 8).equalsIgnoreCase(\"deadline\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" return parseDeadline(userMessage, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 5).equalsIgnoreCase(\"event\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" return parseEvent(userMessage, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":" } else {","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" return Ui.inputErrorMessage();","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" return Ui.inputErrorMessage();","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" public static String parseEvent(String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"dd-MM-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" int index \u003d userMessage.indexOf(\"/from\");","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" int index2 \u003d userMessage.indexOf(\"/to\");","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" String description \u003d userMessage.substring(6, index - 1);","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":" String start \u003d userMessage.substring(index + 6, index2 - 1);","lastModifiedDate":"2023-09-26"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" String end \u003d userMessage.substring(index2 + 4);","lastModifiedDate":"2023-09-26"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":" LocalDateTime startTime \u003d LocalDateTime.parse(start, formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":" LocalDateTime endTime \u003d LocalDateTime.parse(end, formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" Event event \u003d new Event(description, startTime, endTime);","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" return Ui.eventMessage(event, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" return Ui.formatErrorMessage(\"event\");","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" public static String parseDeadline(String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"dd-MM-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":" int index \u003d userMessage.indexOf(\"/by\");","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" String description \u003d userMessage.substring(9, index - 1);","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" LocalDateTime taskDeadline \u003d LocalDateTime.parse(userMessage.substring(index + 4), formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" Deadline deadline \u003d new Deadline(description, taskDeadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" return Ui.deadlineMessage(deadline, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" return Ui.formatErrorMessage(\"deadline\");","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":" public static String parseTodo(String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" Todo todo \u003d new Todo(userMessage.substring(5));","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":" return Ui.todoMessage(todo, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" return Ui.formatErrorMessage(\"todo\");","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":87}},{"path":"src/main/java/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.io.File;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.io.FileNotFoundException;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" * Class for saving and loading the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"public class Storage {","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" * Loads the list of tasks from file.","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object to be filled with data from file.","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public static void load(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" assert taskList.getCount() \u003d\u003d 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" String datePattern2 \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter2 \u003d DateTimeFormatter.ofPattern(datePattern2);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" File taskFile \u003d new File(\"./tasks.txt\");","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" Scanner taskReader \u003d new Scanner(taskFile);","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" while (taskReader.hasNextLine()) {","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" String taskFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(0) \u003d\u003d \u0027T\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" addTodo(taskFromFile, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(0) \u003d\u003d \u0027D\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" String deadlineFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" addDeadline(taskFromFile, deadlineFromFile, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(0) \u003d\u003d \u0027E\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" String startFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" String endFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" addEvent(taskFromFile, startFromFile, endFromFile, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" } catch (FileNotFoundException e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" File taskFile \u003d new File(\"./tasks.txt\");","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" taskFile.createNewFile();","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" } catch (IOException e2) {","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" System.out.println(\"Error!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" public static void addTodo(String taskFromFile, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" Todo todo \u003d new Todo(taskFromFile.substring(3));","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(1) \u003d\u003d \u0027t\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" todo.markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(todo);","lastModifiedDate":"2023-09-26"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" public static void addDeadline(String taskFromFile, String deadlineFromFile, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" String datePattern2 \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter2 \u003d DateTimeFormatter.ofPattern(datePattern2);","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" LocalDateTime taskDeadline \u003d LocalDateTime.parse(deadlineFromFile, formatter2);","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":" Deadline deadline \u003d new Deadline(taskFromFile.substring(3), taskDeadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(1) \u003d\u003d \u0027t\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":" deadline.markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(deadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" public static void addEvent(String taskFromFile, String startFromFile, String endFromFile, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" String datePattern2 \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter2 \u003d DateTimeFormatter.ofPattern(datePattern2);","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" LocalDateTime start \u003d LocalDateTime.parse(startFromFile, formatter2);","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" LocalDateTime end \u003d LocalDateTime.parse(endFromFile, formatter2);","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" Event event \u003d new Event(taskFromFile.substring(3), start, end);","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(1) \u003d\u003d \u0027t\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" event.markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(event);","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":" * Saves the current tasks to file.","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object with the tasks to be saved to file.","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" public static void saveTasks(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":88,"author":{"gitId":"andytoh1"},"content":" FileWriter taskWriter \u003d new FileWriter(\"./tasks.txt\", false);","lastModifiedDate":"2023-09-26"},{"lineNumber":89,"author":{"gitId":"andytoh1"},"content":" for (int taskNumber \u003d 0; taskNumber \u003c\u003d taskList.getCount(); taskNumber++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":90,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(taskNumber) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":91,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(\"T\");","lastModifiedDate":"2023-09-26"},{"lineNumber":92,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).isDone() ? \"t \" : \"f \");","lastModifiedDate":"2023-09-26"},{"lineNumber":93,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).getDescription() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":94,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(taskNumber) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":95,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(\"D\");","lastModifiedDate":"2023-09-26"},{"lineNumber":96,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).isDone() ? \"t \" : \"f \");","lastModifiedDate":"2023-09-26"},{"lineNumber":97,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Deadline)taskList.getTask(taskNumber)).getDescriptionWithoutTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":98,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(taskNumber) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":99,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(\"E\");","lastModifiedDate":"2023-09-26"},{"lineNumber":100,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).isDone() ? \"t \" : \"f \");","lastModifiedDate":"2023-09-26"},{"lineNumber":101,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Event)taskList.getTask(taskNumber)).getDescriptionWithoutTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":102,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":103,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(taskNumber) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":104,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Deadline) taskList.getTask(taskNumber)).getDeadline() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":105,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":106,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(taskNumber) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":107,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Event) taskList.getTask(taskNumber)).getStartTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":108,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Event) taskList.getTask(taskNumber)).getEndTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":109,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":110,"author":{"gitId":"andytoh1"},"content":" taskWriter.flush();","lastModifiedDate":"2023-09-26"},{"lineNumber":111,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":112,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":113,"author":{"gitId":"andytoh1"},"content":" System.out.println(\"Error!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":114,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":115,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":116,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":116}},{"path":"src/main/java/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"public class Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" private String description;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" private boolean done;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" public Task(String description) {","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" this.done \u003d false;","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" public void markAsDone() {","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" this.done \u003d true;","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public void markAsNotDone() {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" this.done \u003d false;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return description;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" public boolean isDone() {","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return done;","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":25}},{"path":"src/main/java/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" * Class representing a list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class TaskList {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" private Task[] tasks;","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" private int taskCount;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" public TaskList() {","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" tasks \u003d new Task[100];","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" taskCount \u003d 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" * Adds a task to the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" * @param task The Task object to be added to the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public void addTask(Task task) {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" tasks[taskCount] \u003d task;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" taskCount++;","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" * Deletes a task from the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" * @param task The index of the task to be deleted from the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" public void deleteTask(int task) {","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" Task[] newTasks \u003d new Task[100];","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" for (int i \u003d 0; i \u003c taskCount - 1; i++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" int j \u003d i;","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" if (i \u003e\u003d task) j \u003d i + 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" newTasks[i] \u003d tasks[j];","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" tasks \u003d newTasks;","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" taskCount--;","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" assert taskCount \u003e\u003d 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" public void markTask(int task) {","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" tasks[task].markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" assert tasks[task].isDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" public int getCount() {","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" return taskCount;","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" public Task getTask(int i) {","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" return tasks[i];","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":52}},{"path":"src/main/java/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" * Class for Todo task.","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" public Todo(String description) {","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" super(description);","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":8}},{"path":"src/main/java/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" * Class handling the output.","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class Ui {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" public static String startMessage() {","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Hello! I\u0027m Chatbot!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"What can I do for you?\");","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public static String endMessage() {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" public static String inputErrorMessage() {","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return \"I\u0027m sorry, but I don\u0027t know what that means!\";","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" * Displays an error message arising from mistakes in format.","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" * @param type Type of command that is not properly formatted.","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" public static String formatErrorMessage(String type) {","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" switch(type) {","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" case \"todo\":","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"todo \u003ctask description\u003e\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" case \"mark\":","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"mark \u003ctask number\u003e\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" case \"delete\":","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"delete \u003ctask number\u003e\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"deadline \u003ctask description\u003e /by DD-MM-YYYY HH:MM\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" case \"event\":","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"event \u003ctask description\u003e /from DD-MM-YYYY HH:MM \" + \"/to DD-MM-YYYY HH:MM\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":" * Displays the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" * @param taskList The list of tasks to be displayed.","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" public static String listTasks(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Here is the list of relevant tasks:\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":" for (int i \u003d 0; i \u003c taskList.getCount(); i++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" int listNumber \u003d i + 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(listNumber + \". \");","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(i) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[T]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(i) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[D]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(i) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[E]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(i).isDone()) stringBuilder.append(\"[X] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" else stringBuilder.append(\"[ ] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(i).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" * Handles the output of a delete command.","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" * @param removeTask Index of the task to be removed from the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object from which the task is to be deleted.","lastModifiedDate":"2023-09-26"},{"lineNumber":88,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":89,"author":{"gitId":"andytoh1"},"content":" public static String deleteMessage(int removeTask, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":90,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":91,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":92,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":93,"author":{"gitId":"andytoh1"},"content":" assert removeTask \u003e\u003d 0 : \"Value must be non-negative\";","lastModifiedDate":"2023-09-26"},{"lineNumber":94,"author":{"gitId":"andytoh1"},"content":" assert taskList.getCount() \u003e removeTask : \"Value must be a number in the list\";","lastModifiedDate":"2023-09-26"},{"lineNumber":95,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"This task will be removed!\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":96,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(removeTask) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":97,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[T]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":98,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(removeTask) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":99,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[D]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":100,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(removeTask) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":101,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[E]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":102,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":103,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(removeTask).isDone()) stringBuilder.append(\"[X] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":104,"author":{"gitId":"andytoh1"},"content":" else stringBuilder.append(\"[ ] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":105,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(removeTask).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":106,"author":{"gitId":"andytoh1"},"content":" taskList.deleteTask(removeTask);","lastModifiedDate":"2023-09-26"},{"lineNumber":107,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":108,"author":{"gitId":"andytoh1"},"content":" return formatErrorMessage(\"delete\");","lastModifiedDate":"2023-09-26"},{"lineNumber":109,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":110,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":111,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":112,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":113,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":114,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":115,"author":{"gitId":"andytoh1"},"content":" * Handles the output of a mark command.","lastModifiedDate":"2023-09-26"},{"lineNumber":116,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":117,"author":{"gitId":"andytoh1"},"content":" * @param doneTask Index of the task to be marked as done.","lastModifiedDate":"2023-09-26"},{"lineNumber":118,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object in which the task is to be marked as done.","lastModifiedDate":"2023-09-26"},{"lineNumber":119,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":120,"author":{"gitId":"andytoh1"},"content":" public static String markMessage(int doneTask, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":121,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":122,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":123,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":124,"author":{"gitId":"andytoh1"},"content":" assert doneTask \u003e\u003d 0 : \"Value must be non-negative\";","lastModifiedDate":"2023-09-26"},{"lineNumber":125,"author":{"gitId":"andytoh1"},"content":" assert taskList.getCount() \u003e doneTask : \"Value must be a number in the list\";","lastModifiedDate":"2023-09-26"},{"lineNumber":126,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Well done! This task has been marked as done.\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":127,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(doneTask) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":128,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[T]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":129,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(doneTask) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":130,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[D]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":131,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(doneTask) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":132,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[E]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":133,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":134,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[X] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":135,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(doneTask).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":136,"author":{"gitId":"andytoh1"},"content":" taskList.getTask(doneTask).markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":137,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":138,"author":{"gitId":"andytoh1"},"content":" return formatErrorMessage(\"mark\");","lastModifiedDate":"2023-09-26"},{"lineNumber":139,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":140,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":141,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":142,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":143,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":144,"author":{"gitId":"andytoh1"},"content":" public static String todoMessage(Todo todo, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":145,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":146,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":147,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(todo);","lastModifiedDate":"2023-09-26"},{"lineNumber":148,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Added this task: [T] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":149,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(taskList.getCount() - 1).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":150,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":151,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":152,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":153,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":154,"author":{"gitId":"andytoh1"},"content":" public static String deadlineMessage(Deadline deadline, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":155,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":156,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":157,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(deadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":158,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Added this task: [D] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":159,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(taskList.getCount() - 1).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":160,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":161,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":162,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":163,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":164,"author":{"gitId":"andytoh1"},"content":" public static String eventMessage(Event event, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":165,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":166,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":167,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(event);","lastModifiedDate":"2023-09-26"},{"lineNumber":168,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Added this task: [E] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":169,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(taskList.getCount() - 1).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":170,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":171,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":172,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":173,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":174,"author":{"gitId":"andytoh1"},"content":" public static String findMessage(String searchTerm, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":175,"author":{"gitId":"andytoh1"},"content":" assert searchTerm.length() \u003e 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":176,"author":{"gitId":"andytoh1"},"content":" TaskList resultList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":177,"author":{"gitId":"andytoh1"},"content":" for (int i \u003d 0; i \u003c taskList.getCount(); i++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":178,"author":{"gitId":"andytoh1"},"content":" String taskDescription \u003d taskList.getTask(i).getDescription();","lastModifiedDate":"2023-09-26"},{"lineNumber":179,"author":{"gitId":"andytoh1"},"content":" for (int j \u003d 0; j \u003c\u003d taskDescription.length() - searchTerm.length(); j++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":180,"author":{"gitId":"andytoh1"},"content":" if (taskDescription.substring(j, j+ searchTerm.length()).equals(searchTerm)) {","lastModifiedDate":"2023-09-26"},{"lineNumber":181,"author":{"gitId":"andytoh1"},"content":" resultList.addTask(taskList.getTask(i));","lastModifiedDate":"2023-09-26"},{"lineNumber":182,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":183,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":184,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":185,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":186,"author":{"gitId":"andytoh1"},"content":" return listTasks(resultList);","lastModifiedDate":"2023-09-26"},{"lineNumber":187,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":188,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":188}},{"path":"src/test/java/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class StorageTest {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" public void testSaveTasks() {","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" TaskList originalList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" Storage.load(originalList);","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" TaskList testList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" Task task1 \u003d new Task(\"Task 1\");","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" Task task2 \u003d new Task(\"Task 2\");","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" testList.addTask(task1);","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" testList.addTask(task2);","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(testList);","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" TaskList verifyList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" Storage.load(verifyList);","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" assertEquals(verifyList.getTask(0), task1);","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" assertEquals(verifyList.getTask(1), task2);","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":22}},{"path":"src/test/java/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class TaskListTest {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" @Test","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" public void testDeleteTask() {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" Task task1 \u003d new Task(\"Task 1\");","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" Task task2 \u003d new Task(\"Task 2\");","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(task1);","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(task2);","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" taskList.deleteTask(0);","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" assertEquals(1, taskList.getCount());","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" assertEquals(task2, taskList.getTask(0));","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":18}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"adkpqweqwdpaskda","lastModifiedDate":"2023-08-27"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"todo abc","lastModifiedDate":"2023-08-27"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"deadline abc by sunday","lastModifiedDate":"2023-08-27"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"deadline abc /by sunday","lastModifiedDate":"2023-08-27"}],"authorContributionMap":{"andytoh1":4}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"java -classpath ..\\bin Chatbot \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-27"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"andytoh1":1,"-":20}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":"java -classpath ../bin Chatbot \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-27"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"andytoh1":1,"-":37}}] +[{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" implementation \u0027org.testng:testng:7.1.0\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" testImplementation \u0027org.mockito:mockito-core:3.12.4\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" String javaFxVersion \u003d \u002717.0.8\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" implementation \u0027org.openjfx:javafx-controls:17.0.8\u0027","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" mainClassName \u003d \"Launcher\"","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":52,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" archiveFileName \u003d \"Chatbot.jar\"","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":56,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":58,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":59,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":60,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"andytoh1":20,"-":40}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# User Guide","lastModifiedDate":"2019-07-29"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"Chatbot is a chatbot that helps to keep track of your tasks. ","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2019-07-29"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"### Adding a to-do: `todo `","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"Adds a task without any time constraints to the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":"Format: `todo TASK_DESCRIPTION`","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":"`todo read book`","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"### Adding a deadline task: `deadline`","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":"Adds a task with a specific time by which it has to be done.","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"Format: `deadline TASK_DESCRIPTION /by DD-MM-YYYY HH:MM`","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":"- Time is given in 24-hour format.","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":"`deadline read book by 19-09-2023 18:00`","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":"### Adding an event: `event`","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":"Adds a task with specific start and end times.","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":"Format: `event TASK_DESCRIPTION /from DD-MM-YYYY HH:MM /to DD-MM-YYYY HH:MM`","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":"- Time is given in 24-hour format.","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":"`event read book /from 20-12-2023 12:00 /to 20-12-2023 15:00`","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":"### Viewing list of tasks: `list`","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":"Displays the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":"Format: `list`","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":"### Deleting tasks from list: `delete`","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":"Deletes the task at the specified index in the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":"Format: `delete INDEX`","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be greater than 0.","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be smaller than the last number in the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":54,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2019-07-29"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":"`delete 3`","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":"### Mark tasks: `mark`","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":"Marks a task at the given index in the list as done.","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":"Format: `mark INDEX`","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be greater than 0.","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":"- `INDEX` has to be smaller than the last number in the list .","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":"- Tasks are marked as done with an \"X\".","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":"Example of usage:","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":"`mark 1`","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":"### Locating a task: `find`","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":"Searches for a task by description.","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":"- Search is case-sensitive.","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":"- The order of search terms matter.","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":"- A match will happen if the search term matches any substring exactly.","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":"### Exit program: `bye`","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":"Closes the chatbot.","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":"Format: `bye`","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":59,"-":22}},{"path":"src/main/java/Chatbot.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"import java.io.FileNotFoundException;","lastModifiedDate":"2023-09-03"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-03"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-08-24"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"import java.io.File;","lastModifiedDate":"2023-09-03"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-03"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-03"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-03"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"import javafx.event.EventTarget;","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":"public class Chatbot extends Application {","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" private Scene scene;","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-08-24"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" private Image user \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaUser.png\"));","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" private Image duke \u003d new Image(this.getClass().getResourceAsStream(\"/images/DaDuke.png\"));","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" public Chatbot() {","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-03"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-03"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-03"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" Storage.load(taskList);","lastModifiedDate":"2023-09-03"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" Ui.startMessage();","lastModifiedDate":"2023-09-03"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" Scanner userInput \u003d new Scanner(System.in);","lastModifiedDate":"2023-09-03"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-03"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" while (true) {","lastModifiedDate":"2023-09-03"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" String userMessage \u003d userInput.nextLine();","lastModifiedDate":"2023-09-03"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" Parser.parse(userMessage, taskList);","lastModifiedDate":"2023-09-03"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-03"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-03"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-08-24"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":" @Override","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" // Step 1. Setting up required components","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" Ui ui \u003d new Ui();","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":" Storage.load(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":" initializeUI(stage);","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" setStage(stage);","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" setEventHandlers(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":" private void initializeUI(Stage stage) {","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":" scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" stage.show();","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" private void setStage(Stage stage) {","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" stage.setTitle(\"Chatbot\");","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":88,"author":{"gitId":"andytoh1"},"content":" scrollPane.setPrefSize(400, 570);","lastModifiedDate":"2023-09-26"},{"lineNumber":89,"author":{"gitId":"andytoh1"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-26"},{"lineNumber":90,"author":{"gitId":"andytoh1"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-26"},{"lineNumber":91,"author":{"gitId":"andytoh1"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":92,"author":{"gitId":"andytoh1"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-26"},{"lineNumber":93,"author":{"gitId":"andytoh1"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-26"},{"lineNumber":94,"author":{"gitId":"andytoh1"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":95,"author":{"gitId":"andytoh1"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":96,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":97,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":98,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":99,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setLeftAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":100,"author":{"gitId":"andytoh1"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":101,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":102,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":103,"author":{"gitId":"andytoh1"},"content":" private void setEventHandlers(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":104,"author":{"gitId":"andytoh1"},"content":" sendButton.setOnMouseClicked((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":105,"author":{"gitId":"andytoh1"},"content":" dialogContainer.getChildren().add(getDialogLabel(userInput.getText()));","lastModifiedDate":"2023-09-26"},{"lineNumber":106,"author":{"gitId":"andytoh1"},"content":" userInput.clear();","lastModifiedDate":"2023-09-26"},{"lineNumber":107,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":108,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":109,"author":{"gitId":"andytoh1"},"content":" userInput.setOnAction((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":110,"author":{"gitId":"andytoh1"},"content":" dialogContainer.getChildren().add(getDialogLabel(userInput.getText()));","lastModifiedDate":"2023-09-26"},{"lineNumber":111,"author":{"gitId":"andytoh1"},"content":" userInput.clear();","lastModifiedDate":"2023-09-26"},{"lineNumber":112,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":113,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":114,"author":{"gitId":"andytoh1"},"content":" dialogContainer.heightProperty().addListener((observable) -\u003e scrollPane.setVvalue(1.0));","lastModifiedDate":"2023-09-26"},{"lineNumber":115,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":116,"author":{"gitId":"andytoh1"},"content":" sendButton.setOnMouseClicked((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":117,"author":{"gitId":"andytoh1"},"content":" handleUserInput(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":118,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":119,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":120,"author":{"gitId":"andytoh1"},"content":" userInput.setOnAction((event) -\u003e {","lastModifiedDate":"2023-09-26"},{"lineNumber":121,"author":{"gitId":"andytoh1"},"content":" handleUserInput(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":122,"author":{"gitId":"andytoh1"},"content":" });","lastModifiedDate":"2023-09-26"},{"lineNumber":123,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":124,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":125,"author":{"gitId":"andytoh1"},"content":" // more code to be added here later","lastModifiedDate":"2023-09-26"},{"lineNumber":126,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":127,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":128,"author":{"gitId":"andytoh1"},"content":" private Label getDialogLabel(String text) {","lastModifiedDate":"2023-09-26"},{"lineNumber":129,"author":{"gitId":"andytoh1"},"content":" // You will need to import `javafx.scene.control.Label`.","lastModifiedDate":"2023-09-26"},{"lineNumber":130,"author":{"gitId":"andytoh1"},"content":" Label textToAdd \u003d new Label(text);","lastModifiedDate":"2023-09-26"},{"lineNumber":131,"author":{"gitId":"andytoh1"},"content":" textToAdd.setWrapText(true);","lastModifiedDate":"2023-09-26"},{"lineNumber":132,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":133,"author":{"gitId":"andytoh1"},"content":" return textToAdd;","lastModifiedDate":"2023-09-26"},{"lineNumber":134,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":135,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":136,"author":{"gitId":"andytoh1"},"content":" private void handleUserInput(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":137,"author":{"gitId":"andytoh1"},"content":" Label userText \u003d new Label(userInput.getText());","lastModifiedDate":"2023-09-26"},{"lineNumber":138,"author":{"gitId":"andytoh1"},"content":" Label dukeText \u003d new Label(getResponse(userInput.getText(), taskList));","lastModifiedDate":"2023-09-26"},{"lineNumber":139,"author":{"gitId":"andytoh1"},"content":" dialogContainer.getChildren().addAll(","lastModifiedDate":"2023-09-26"},{"lineNumber":140,"author":{"gitId":"andytoh1"},"content":" DialogBox.getUserDialog(userText, new ImageView(user)),","lastModifiedDate":"2023-09-26"},{"lineNumber":141,"author":{"gitId":"andytoh1"},"content":" DialogBox.getDukeDialog(dukeText, new ImageView(duke))","lastModifiedDate":"2023-09-26"},{"lineNumber":142,"author":{"gitId":"andytoh1"},"content":" );","lastModifiedDate":"2023-09-26"},{"lineNumber":143,"author":{"gitId":"andytoh1"},"content":" userInput.clear();","lastModifiedDate":"2023-09-26"},{"lineNumber":144,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":145,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":146,"author":{"gitId":"andytoh1"},"content":" private String getResponse(String input, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":147,"author":{"gitId":"andytoh1"},"content":" return Parser.parse(input, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":148,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":149,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-08-24"}],"authorContributionMap":{"andytoh1":149}},{"path":"src/main/java/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" * Class for Deadline task.","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" private LocalDateTime deadline;","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" public Deadline(String description, LocalDateTime deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" super(description);","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" this.deadline \u003d deadline;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return super.getDescription() + \" (by: \" + deadline.format(formatter) + \")\";","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" public String getDeadline() {","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return deadline.format(formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" public String getDescriptionWithoutTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" return super.getDescription();","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":29}},{"path":"src/main/java/DialogBox.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import javafx.collections.FXCollections;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import javafx.collections.ObservableList;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.Node;","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"public class DialogBox extends HBox {","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" private Label text;","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" private ImageView displayPicture;","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public DialogBox(Label l, ImageView iv) {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" text \u003d l;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" displayPicture \u003d iv;","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" text.setWrapText(true);","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" displayPicture.setFitWidth(100.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" displayPicture.setFitHeight(100.0);","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" this.setAlignment(Pos.TOP_RIGHT);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" this.getChildren().addAll(text, displayPicture);","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" * Flips the dialog box such that the ImageView is on the left and text on the right.","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" private void flip() {","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" this.setAlignment(Pos.TOP_LEFT);","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" ObservableList\u003cNode\u003e tmp \u003d FXCollections.observableArrayList(this.getChildren());","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" FXCollections.reverse(tmp);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" this.getChildren().setAll(tmp);","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" public static DialogBox getUserDialog(Label l, ImageView iv) {","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" return new DialogBox(l, iv);","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" public static DialogBox getDukeDialog(Label l, ImageView iv) {","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" var db \u003d new DialogBox(l, iv);","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" db.flip();","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" return db;","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":45}},{"path":"src/main/java/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" * Class for Event task.","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"public class Event extends Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" private LocalDateTime startTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" private LocalDateTime endTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public Event(String description, LocalDateTime startTime, LocalDateTime endTime) {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" super(description);","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" this.startTime \u003d startTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" this.endTime \u003d endTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return super.getDescription() + \" (from: \" + startTime.format(formatter) + \" to: \"","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" + endTime.format(formatter) + \")\";","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" public String getStartTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" return startTime.format(formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" public String getEndTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" return endTime.format(formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" public String getDescriptionWithoutTime() {","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" return super.getDescription();","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":38}},{"path":"src/main/java/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"public class Launcher {","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" Application.launch(Chatbot.class, args);","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":10}},{"path":"src/main/java/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" * Class for reading user input.","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"public class Parser {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" * Parses any user input.","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" * @param userMessage Input of the user.","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" * @param taskList TaskList with all the current tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public static String parse (String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" assert userMessage.length() \u003e 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"dd-MM-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" if (userMessage.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return Ui.endMessage();","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" if (userMessage.equalsIgnoreCase(\"list\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" return Ui.listTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" if (userMessage.substring(0, 6).equalsIgnoreCase(\"delete\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" int removeTask \u003d Integer.parseInt(userMessage.substring(7)) - 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" return Ui.deleteMessage(removeTask, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 4).equalsIgnoreCase(\"find\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" return Ui.findMessage(userMessage.substring(5), taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" }else if (userMessage.substring(0, 4).equalsIgnoreCase(\"mark\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" int doneTask \u003d Integer.parseInt(userMessage.substring(5)) - 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" return Ui.markMessage(doneTask, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 4).equalsIgnoreCase(\"todo\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" return parseTodo(userMessage, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 8).equalsIgnoreCase(\"deadline\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" return parseDeadline(userMessage, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" } else if (userMessage.substring(0, 5).equalsIgnoreCase(\"event\")) {","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" return parseEvent(userMessage, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":" } else {","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" return Ui.inputErrorMessage();","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" return Ui.inputErrorMessage();","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" public static String parseEvent(String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"dd-MM-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" int index \u003d userMessage.indexOf(\"/from\");","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" int index2 \u003d userMessage.indexOf(\"/to\");","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" String description \u003d userMessage.substring(6, index - 1);","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":" String start \u003d userMessage.substring(index + 6, index2 - 1);","lastModifiedDate":"2023-09-26"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" String end \u003d userMessage.substring(index2 + 4);","lastModifiedDate":"2023-09-26"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":" LocalDateTime startTime \u003d LocalDateTime.parse(start, formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":" LocalDateTime endTime \u003d LocalDateTime.parse(end, formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" Event event \u003d new Event(description, startTime, endTime);","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" return Ui.eventMessage(event, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" return Ui.formatErrorMessage(\"event\");","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" public static String parseDeadline(String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" String datePattern \u003d \"dd-MM-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter \u003d DateTimeFormatter.ofPattern(datePattern);","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":" int index \u003d userMessage.indexOf(\"/by\");","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" String description \u003d userMessage.substring(9, index - 1);","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" LocalDateTime taskDeadline \u003d LocalDateTime.parse(userMessage.substring(index + 4), formatter);","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" Deadline deadline \u003d new Deadline(description, taskDeadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" return Ui.deadlineMessage(deadline, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" return Ui.formatErrorMessage(\"deadline\");","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":" public static String parseTodo(String userMessage, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" Todo todo \u003d new Todo(userMessage.substring(5));","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":" return Ui.todoMessage(todo, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" return Ui.formatErrorMessage(\"todo\");","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":87}},{"path":"src/main/java/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import java.io.File;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import java.io.FileNotFoundException;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"import java.time.LocalDateTime;","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" * Class for saving and loading the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"public class Storage {","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" * Loads the list of tasks from file.","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object to be filled with data from file.","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public static void load(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" assert taskList.getCount() \u003d\u003d 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" String datePattern2 \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter2 \u003d DateTimeFormatter.ofPattern(datePattern2);","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" File taskFile \u003d new File(\"./tasks.txt\");","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" Scanner taskReader \u003d new Scanner(taskFile);","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" while (taskReader.hasNextLine()) {","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" String taskFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(0) \u003d\u003d \u0027T\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" addTodo(taskFromFile, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(0) \u003d\u003d \u0027D\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" String deadlineFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" addDeadline(taskFromFile, deadlineFromFile, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(0) \u003d\u003d \u0027E\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" String startFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" String endFromFile \u003d taskReader.nextLine();","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" addEvent(taskFromFile, startFromFile, endFromFile, taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" } catch (FileNotFoundException e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" File taskFile \u003d new File(\"./tasks.txt\");","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" taskFile.createNewFile();","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" } catch (IOException e2) {","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" System.out.println(\"Error!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" public static void addTodo(String taskFromFile, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" Todo todo \u003d new Todo(taskFromFile.substring(3));","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(1) \u003d\u003d \u0027t\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" todo.markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(todo);","lastModifiedDate":"2023-09-26"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" public static void addDeadline(String taskFromFile, String deadlineFromFile, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" String datePattern2 \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter2 \u003d DateTimeFormatter.ofPattern(datePattern2);","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" LocalDateTime taskDeadline \u003d LocalDateTime.parse(deadlineFromFile, formatter2);","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":" Deadline deadline \u003d new Deadline(taskFromFile.substring(3), taskDeadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(1) \u003d\u003d \u0027t\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":" deadline.markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(deadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" public static void addEvent(String taskFromFile, String startFromFile, String endFromFile, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" String datePattern2 \u003d \"MMM-dd-yyyy HH:mm\";","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" DateTimeFormatter formatter2 \u003d DateTimeFormatter.ofPattern(datePattern2);","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" LocalDateTime start \u003d LocalDateTime.parse(startFromFile, formatter2);","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" LocalDateTime end \u003d LocalDateTime.parse(endFromFile, formatter2);","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" Event event \u003d new Event(taskFromFile.substring(3), start, end);","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" if (taskFromFile.charAt(1) \u003d\u003d \u0027t\u0027) {","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" event.markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(event);","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":" * Saves the current tasks to file.","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object with the tasks to be saved to file.","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" public static void saveTasks(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":88,"author":{"gitId":"andytoh1"},"content":" FileWriter taskWriter \u003d new FileWriter(\"./tasks.txt\", false);","lastModifiedDate":"2023-09-26"},{"lineNumber":89,"author":{"gitId":"andytoh1"},"content":" for (int taskNumber \u003d 0; taskNumber \u003c\u003d taskList.getCount(); taskNumber++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":90,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(taskNumber) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":91,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(\"T\");","lastModifiedDate":"2023-09-26"},{"lineNumber":92,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).isDone() ? \"t \" : \"f \");","lastModifiedDate":"2023-09-26"},{"lineNumber":93,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).getDescription() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":94,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(taskNumber) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":95,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(\"D\");","lastModifiedDate":"2023-09-26"},{"lineNumber":96,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).isDone() ? \"t \" : \"f \");","lastModifiedDate":"2023-09-26"},{"lineNumber":97,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Deadline)taskList.getTask(taskNumber)).getDescriptionWithoutTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":98,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(taskNumber) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":99,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(\"E\");","lastModifiedDate":"2023-09-26"},{"lineNumber":100,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(taskList.getTask(taskNumber).isDone() ? \"t \" : \"f \");","lastModifiedDate":"2023-09-26"},{"lineNumber":101,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Event)taskList.getTask(taskNumber)).getDescriptionWithoutTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":102,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":103,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(taskNumber) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":104,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Deadline) taskList.getTask(taskNumber)).getDeadline() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":105,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":106,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(taskNumber) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":107,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Event) taskList.getTask(taskNumber)).getStartTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":108,"author":{"gitId":"andytoh1"},"content":" taskWriter.write(((Event) taskList.getTask(taskNumber)).getEndTime() + \"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":109,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":110,"author":{"gitId":"andytoh1"},"content":" taskWriter.flush();","lastModifiedDate":"2023-09-26"},{"lineNumber":111,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":112,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":113,"author":{"gitId":"andytoh1"},"content":" System.out.println(\"Error!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":114,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":115,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":116,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":116}},{"path":"src/main/java/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"public class Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" private String description;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" private boolean done;","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" public Task(String description) {","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" this.description \u003d description;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" this.done \u003d false;","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" public void markAsDone() {","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" this.done \u003d true;","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public void markAsNotDone() {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" this.done \u003d false;","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return description;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" public boolean isDone() {","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return done;","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":25}},{"path":"src/main/java/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" * Class representing a list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class TaskList {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" private Task[] tasks;","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" private int taskCount;","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" public TaskList() {","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" tasks \u003d new Task[100];","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" taskCount \u003d 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" * Adds a task to the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" * @param task The Task object to be added to the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" public void addTask(Task task) {","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" tasks[taskCount] \u003d task;","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" taskCount++;","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" * Deletes a task from the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" * @param task The index of the task to be deleted from the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" public void deleteTask(int task) {","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" Task[] newTasks \u003d new Task[100];","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" for (int i \u003d 0; i \u003c taskCount - 1; i++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" int j \u003d i;","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" if (i \u003e\u003d task) j \u003d i + 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":" newTasks[i] \u003d tasks[j];","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" tasks \u003d newTasks;","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" taskCount--;","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" assert taskCount \u003e\u003d 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" public void markTask(int task) {","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" tasks[task].markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" assert tasks[task].isDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" public int getCount() {","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" return taskCount;","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" public Task getTask(int i) {","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" return tasks[i];","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":52}},{"path":"src/main/java/Todo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" * Class for Todo task.","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class Todo extends Task {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" public Todo(String description) {","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" super(description);","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":8}},{"path":"src/main/java/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"/**","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":" * Class handling the output.","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class Ui {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":" public static String startMessage() {","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Hello! I\u0027m Chatbot!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"What can I do for you?\");","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" public static String endMessage() {","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":" public static String inputErrorMessage() {","lastModifiedDate":"2023-09-26"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":" return \"I\u0027m sorry, but I don\u0027t know what that means!\";","lastModifiedDate":"2023-09-26"},{"lineNumber":24,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":25,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":26,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":27,"author":{"gitId":"andytoh1"},"content":" * Displays an error message arising from mistakes in format.","lastModifiedDate":"2023-09-26"},{"lineNumber":28,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":29,"author":{"gitId":"andytoh1"},"content":" * @param type Type of command that is not properly formatted.","lastModifiedDate":"2023-09-26"},{"lineNumber":30,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":31,"author":{"gitId":"andytoh1"},"content":" public static String formatErrorMessage(String type) {","lastModifiedDate":"2023-09-26"},{"lineNumber":32,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":33,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":34,"author":{"gitId":"andytoh1"},"content":" switch(type) {","lastModifiedDate":"2023-09-26"},{"lineNumber":35,"author":{"gitId":"andytoh1"},"content":" case \"todo\":","lastModifiedDate":"2023-09-26"},{"lineNumber":36,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"todo \u003ctask description\u003e\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":37,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":38,"author":{"gitId":"andytoh1"},"content":" case \"mark\":","lastModifiedDate":"2023-09-26"},{"lineNumber":39,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"mark \u003ctask number\u003e\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":40,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":41,"author":{"gitId":"andytoh1"},"content":" case \"delete\":","lastModifiedDate":"2023-09-26"},{"lineNumber":42,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"delete \u003ctask number\u003e\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":43,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":44,"author":{"gitId":"andytoh1"},"content":" case \"deadline\":","lastModifiedDate":"2023-09-26"},{"lineNumber":45,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"deadline \u003ctask description\u003e /by DD-MM-YYYY HH:MM\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":46,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":47,"author":{"gitId":"andytoh1"},"content":" case \"event\":","lastModifiedDate":"2023-09-26"},{"lineNumber":48,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Please use the format \\\"event \u003ctask description\u003e /from DD-MM-YYYY HH:MM \" + \"/to DD-MM-YYYY HH:MM\\\"!\");","lastModifiedDate":"2023-09-26"},{"lineNumber":49,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":50,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":51,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":52,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":53,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":54,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":55,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":56,"author":{"gitId":"andytoh1"},"content":" * Displays the list of tasks.","lastModifiedDate":"2023-09-26"},{"lineNumber":57,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":58,"author":{"gitId":"andytoh1"},"content":" * @param taskList The list of tasks to be displayed.","lastModifiedDate":"2023-09-26"},{"lineNumber":59,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":60,"author":{"gitId":"andytoh1"},"content":" public static String listTasks(TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":61,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":62,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":63,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Here is the list of relevant tasks:\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":64,"author":{"gitId":"andytoh1"},"content":" for (int i \u003d 0; i \u003c taskList.getCount(); i++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":65,"author":{"gitId":"andytoh1"},"content":" int listNumber \u003d i + 1;","lastModifiedDate":"2023-09-26"},{"lineNumber":66,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(listNumber + \". \");","lastModifiedDate":"2023-09-26"},{"lineNumber":67,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(i) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":68,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[T]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":69,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(i) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":70,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[D]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":71,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(i) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":72,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[E]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":73,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":74,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(i).isDone()) stringBuilder.append(\"[X] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":75,"author":{"gitId":"andytoh1"},"content":" else stringBuilder.append(\"[ ] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":76,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(i).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":77,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":78,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":79,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":80,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":81,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":82,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":83,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":84,"author":{"gitId":"andytoh1"},"content":" * Handles the output of a delete command.","lastModifiedDate":"2023-09-26"},{"lineNumber":85,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":86,"author":{"gitId":"andytoh1"},"content":" * @param removeTask Index of the task to be removed from the list.","lastModifiedDate":"2023-09-26"},{"lineNumber":87,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object from which the task is to be deleted.","lastModifiedDate":"2023-09-26"},{"lineNumber":88,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":89,"author":{"gitId":"andytoh1"},"content":" public static String deleteMessage(int removeTask, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":90,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":91,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":92,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":93,"author":{"gitId":"andytoh1"},"content":" assert removeTask \u003e\u003d 0 : \"Value must be non-negative\";","lastModifiedDate":"2023-09-26"},{"lineNumber":94,"author":{"gitId":"andytoh1"},"content":" assert taskList.getCount() \u003e removeTask : \"Value must be a number in the list\";","lastModifiedDate":"2023-09-26"},{"lineNumber":95,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"This task will be removed!\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":96,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(removeTask) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":97,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[T]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":98,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(removeTask) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":99,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[D]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":100,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(removeTask) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":101,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[E]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":102,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":103,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(removeTask).isDone()) stringBuilder.append(\"[X] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":104,"author":{"gitId":"andytoh1"},"content":" else stringBuilder.append(\"[ ] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":105,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(removeTask).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":106,"author":{"gitId":"andytoh1"},"content":" taskList.deleteTask(removeTask);","lastModifiedDate":"2023-09-26"},{"lineNumber":107,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":108,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":109,"author":{"gitId":"andytoh1"},"content":" return formatErrorMessage(\"delete\");","lastModifiedDate":"2023-09-26"},{"lineNumber":110,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":111,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":112,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":113,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":114,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":115,"author":{"gitId":"andytoh1"},"content":" /**","lastModifiedDate":"2023-09-26"},{"lineNumber":116,"author":{"gitId":"andytoh1"},"content":" * Handles the output of a mark command.","lastModifiedDate":"2023-09-26"},{"lineNumber":117,"author":{"gitId":"andytoh1"},"content":" *","lastModifiedDate":"2023-09-26"},{"lineNumber":118,"author":{"gitId":"andytoh1"},"content":" * @param doneTask Index of the task to be marked as done.","lastModifiedDate":"2023-09-26"},{"lineNumber":119,"author":{"gitId":"andytoh1"},"content":" * @param taskList The TaskList object in which the task is to be marked as done.","lastModifiedDate":"2023-09-26"},{"lineNumber":120,"author":{"gitId":"andytoh1"},"content":" */","lastModifiedDate":"2023-09-26"},{"lineNumber":121,"author":{"gitId":"andytoh1"},"content":" public static String markMessage(int doneTask, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":122,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":123,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":124,"author":{"gitId":"andytoh1"},"content":" try {","lastModifiedDate":"2023-09-26"},{"lineNumber":125,"author":{"gitId":"andytoh1"},"content":" assert doneTask \u003e\u003d 0 : \"Value must be non-negative\";","lastModifiedDate":"2023-09-26"},{"lineNumber":126,"author":{"gitId":"andytoh1"},"content":" assert taskList.getCount() \u003e doneTask : \"Value must be a number in the list\";","lastModifiedDate":"2023-09-26"},{"lineNumber":127,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Well done! This task has been marked as done.\\n\");","lastModifiedDate":"2023-09-26"},{"lineNumber":128,"author":{"gitId":"andytoh1"},"content":" if (taskList.getTask(doneTask) instanceof Todo) {","lastModifiedDate":"2023-09-26"},{"lineNumber":129,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[T]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":130,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(doneTask) instanceof Deadline) {","lastModifiedDate":"2023-09-26"},{"lineNumber":131,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[D]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":132,"author":{"gitId":"andytoh1"},"content":" } else if (taskList.getTask(doneTask) instanceof Event) {","lastModifiedDate":"2023-09-26"},{"lineNumber":133,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[E]\");","lastModifiedDate":"2023-09-26"},{"lineNumber":134,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":135,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"[X] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":136,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(doneTask).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":137,"author":{"gitId":"andytoh1"},"content":" taskList.getTask(doneTask).markAsDone();","lastModifiedDate":"2023-09-26"},{"lineNumber":138,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":139,"author":{"gitId":"andytoh1"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-09-26"},{"lineNumber":140,"author":{"gitId":"andytoh1"},"content":" return formatErrorMessage(\"mark\");","lastModifiedDate":"2023-09-26"},{"lineNumber":141,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":142,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":143,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":144,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":145,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":146,"author":{"gitId":"andytoh1"},"content":" public static String todoMessage(Todo todo, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":147,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":148,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":149,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(todo);","lastModifiedDate":"2023-09-26"},{"lineNumber":150,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Added this task: [T] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":151,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(taskList.getCount() - 1).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":152,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":153,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":154,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":155,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":156,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":157,"author":{"gitId":"andytoh1"},"content":" public static String deadlineMessage(Deadline deadline, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":158,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":159,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":160,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(deadline);","lastModifiedDate":"2023-09-26"},{"lineNumber":161,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Added this task: [D] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":162,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(taskList.getCount() - 1).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":163,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":164,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":165,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":166,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":167,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":168,"author":{"gitId":"andytoh1"},"content":" public static String eventMessage(Event event, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":169,"author":{"gitId":"andytoh1"},"content":" StringBuilder stringBuilder \u003d new StringBuilder();","lastModifiedDate":"2023-09-26"},{"lineNumber":170,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":171,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(event);","lastModifiedDate":"2023-09-26"},{"lineNumber":172,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(\"Added this task: [E] \");","lastModifiedDate":"2023-09-26"},{"lineNumber":173,"author":{"gitId":"andytoh1"},"content":" stringBuilder.append(taskList.getTask(taskList.getCount() - 1).getDescription());","lastModifiedDate":"2023-09-26"},{"lineNumber":174,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(taskList);","lastModifiedDate":"2023-09-26"},{"lineNumber":175,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":176,"author":{"gitId":"andytoh1"},"content":" return stringBuilder.toString();","lastModifiedDate":"2023-09-26"},{"lineNumber":177,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":178,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":179,"author":{"gitId":"andytoh1"},"content":" public static String findMessage(String searchTerm, TaskList taskList) {","lastModifiedDate":"2023-09-26"},{"lineNumber":180,"author":{"gitId":"andytoh1"},"content":" assert searchTerm.length() \u003e 0;","lastModifiedDate":"2023-09-26"},{"lineNumber":181,"author":{"gitId":"andytoh1"},"content":" TaskList resultList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":182,"author":{"gitId":"andytoh1"},"content":" for (int i \u003d 0; i \u003c taskList.getCount(); i++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":183,"author":{"gitId":"andytoh1"},"content":" String taskDescription \u003d taskList.getTask(i).getDescription();","lastModifiedDate":"2023-09-26"},{"lineNumber":184,"author":{"gitId":"andytoh1"},"content":" for (int j \u003d 0; j \u003c\u003d taskDescription.length() - searchTerm.length(); j++) {","lastModifiedDate":"2023-09-26"},{"lineNumber":185,"author":{"gitId":"andytoh1"},"content":" if (taskDescription.substring(j, j+ searchTerm.length()).equals(searchTerm)) {","lastModifiedDate":"2023-09-26"},{"lineNumber":186,"author":{"gitId":"andytoh1"},"content":" resultList.addTask(taskList.getTask(i));","lastModifiedDate":"2023-09-26"},{"lineNumber":187,"author":{"gitId":"andytoh1"},"content":" break;","lastModifiedDate":"2023-09-26"},{"lineNumber":188,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":189,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":190,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":191,"author":{"gitId":"andytoh1"},"content":" return listTasks(resultList);","lastModifiedDate":"2023-09-26"},{"lineNumber":192,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":193,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":193}},{"path":"src/test/java/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class StorageTest {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" public void testSaveTasks() {","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" TaskList originalList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" Storage.load(originalList);","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" TaskList testList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" Task task1 \u003d new Task(\"Task 1\");","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" Task task2 \u003d new Task(\"Task 2\");","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":" testList.addTask(task1);","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" testList.addTask(task2);","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" Storage.saveTasks(testList);","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" TaskList verifyList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":" Storage.load(verifyList);","lastModifiedDate":"2023-09-26"},{"lineNumber":19,"author":{"gitId":"andytoh1"},"content":" assertEquals(verifyList.getTask(0), task1);","lastModifiedDate":"2023-09-26"},{"lineNumber":20,"author":{"gitId":"andytoh1"},"content":" assertEquals(verifyList.getTask(1), task2);","lastModifiedDate":"2023-09-26"},{"lineNumber":21,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":22,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":22}},{"path":"src/test/java/TaskListTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-09-26"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-09-26"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"public class TaskListTest {","lastModifiedDate":"2023-09-26"},{"lineNumber":5,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":6,"author":{"gitId":"andytoh1"},"content":" @Test","lastModifiedDate":"2023-09-26"},{"lineNumber":7,"author":{"gitId":"andytoh1"},"content":" public void testDeleteTask() {","lastModifiedDate":"2023-09-26"},{"lineNumber":8,"author":{"gitId":"andytoh1"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-09-26"},{"lineNumber":9,"author":{"gitId":"andytoh1"},"content":" Task task1 \u003d new Task(\"Task 1\");","lastModifiedDate":"2023-09-26"},{"lineNumber":10,"author":{"gitId":"andytoh1"},"content":" Task task2 \u003d new Task(\"Task 2\");","lastModifiedDate":"2023-09-26"},{"lineNumber":11,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(task1);","lastModifiedDate":"2023-09-26"},{"lineNumber":12,"author":{"gitId":"andytoh1"},"content":" taskList.addTask(task2);","lastModifiedDate":"2023-09-26"},{"lineNumber":13,"author":{"gitId":"andytoh1"},"content":"","lastModifiedDate":"2023-09-26"},{"lineNumber":14,"author":{"gitId":"andytoh1"},"content":" taskList.deleteTask(0);","lastModifiedDate":"2023-09-26"},{"lineNumber":15,"author":{"gitId":"andytoh1"},"content":" assertEquals(1, taskList.getCount());","lastModifiedDate":"2023-09-26"},{"lineNumber":16,"author":{"gitId":"andytoh1"},"content":" assertEquals(task2, taskList.getTask(0));","lastModifiedDate":"2023-09-26"},{"lineNumber":17,"author":{"gitId":"andytoh1"},"content":" }","lastModifiedDate":"2023-09-26"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"}","lastModifiedDate":"2023-09-26"}],"authorContributionMap":{"andytoh1":18}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"andytoh1"},"content":"adkpqweqwdpaskda","lastModifiedDate":"2023-08-27"},{"lineNumber":2,"author":{"gitId":"andytoh1"},"content":"todo abc","lastModifiedDate":"2023-08-27"},{"lineNumber":3,"author":{"gitId":"andytoh1"},"content":"deadline abc by sunday","lastModifiedDate":"2023-08-27"},{"lineNumber":4,"author":{"gitId":"andytoh1"},"content":"deadline abc /by sunday","lastModifiedDate":"2023-08-27"}],"authorContributionMap":{"andytoh1":4}},{"path":"text-ui-test/runtest.bat","fileType":"bat","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@ECHO OFF","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"REM create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if not exist ..\\bin mkdir ..\\bin","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"REM delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"if exist ACTUAL.TXT del ACTUAL.TXT","lastModifiedDate":"2020-08-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"REM compile the code into the bin folder","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"javac -cp ..\\src\\main\\java -Xlint:none -d ..\\bin ..\\src\\main\\java\\*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"IF ERRORLEVEL 1 (","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" echo ********** BUILD FAILURE **********","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" exit /b 1","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"REM no error here, errorlevel \u003d\u003d 0","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"REM run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"andytoh1"},"content":"java -classpath ..\\bin Chatbot \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-27"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"REM compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"FC ACTUAL.TXT EXPECTED.TXT","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"andytoh1":1,"-":20}},{"path":"text-ui-test/runtest.sh","fileType":"sh","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# create bin directory if it doesn\u0027t exist","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"if [ ! -d \"../bin\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":" mkdir ../bin","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"# delete output from previous run","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"if [ -e \"./ACTUAL.TXT\" ]","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" rm ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"# compile the code into the bin folder, terminates if error occurred","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"if ! javac -cp ../src/main/java -Xlint:none -d ../bin ../src/main/java/*.java","lastModifiedDate":"2020-08-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" echo \"********** BUILD FAILURE **********\"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"# run the program, feed commands from input.txt file and redirect the output to the ACTUAL.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"andytoh1"},"content":"java -classpath ../bin Chatbot \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2023-08-27"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":"# convert to UNIX format","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":"dos2unix ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"# compare the output to the expected output","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"diff ACTUAL.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" echo \"Test result: PASSED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" echo \"Test result: FAILED\"","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"andytoh1":1,"-":37}}] diff --git a/andytoh1_ip_master/commits.json b/andytoh1_ip_master/commits.json index 20493edc..0f844100 100644 --- a/andytoh1_ip_master/commits.json +++ b/andytoh1_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"andytoh1":[{"date":"2023-08-24","commitResults":[{"hash":"be54eb62370c7bf4c5f42ebaa63560004397b72e","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":10}}},{"hash":"8c01edb381794a18a37bbc7fbe27ad976b28bc33","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"2952594b5ffc710a1ab7b015866ceeae49538a2d","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":2}}},{"hash":"4afb4e8ac6cd143c44911523f54a1f2cf296c0df","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":0}}},{"hash":"f2860d0fd739b4f6e36b813d08ae352e8294aaa0","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":2}}},{"hash":"7ff37d08406c0a99195331a4d853bf95e745c133","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":39,"deletions":16}}},{"hash":"1cab9410d9a7a0145ed46617b8868386c2c8b7d8","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":23,"deletions":1}}}]},{"date":"2023-08-27","commitResults":[{"hash":"537844575b5f68eb31dcd0052598ac599e883bc8","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":0},"bat":{"insertions":1,"deletions":1},"sh":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-03","commitResults":[{"hash":"24743aca20e40d7a6f81a6912bdab27113eac915","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{"java":{"insertions":482,"deletions":7}}},{"hash":"276add239f554cdee0d2894af190d30b2699107d","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":370,"deletions":70}}}]},{"date":"2023-09-24","commitResults":[{"hash":"507a00467fee76523c9a6ca8b70a498365260f33","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/Duke.java\n","fileTypesAndContributionMap":{}},{"hash":"8f0342d8d73b53db07e14d87335aab775920831f","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":3}}}]},{"date":"2023-09-26","commitResults":[{"hash":"0a862f1f97500f32d880675d6f846f097cc9aaf4","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"java":{"insertions":428,"deletions":375}}},{"hash":"de26dda3cb9f6f77bc8c9ad545b89acad0a53621","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-Jar","A-CodingStandard"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}},{"hash":"338f4de7f2f8e130495839f00f65b8d79abebe1a","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":70,"deletions":1}}},{"hash":"18f38eeda7031ab39d3a79d25c6f28f16f581c21","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":2}}},{"hash":"8305bc353410d5418093467e19b66545b898e93c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Javadoc\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"936366f6f480aec68162f9881ef14e763c3985d3","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":17,"deletions":0},"java":{"insertions":287,"deletions":67}}},{"hash":"27f48015ef321ae95556e6b58810191c9b71fd38","isMergeCommit":false,"messageTitle":"Add assertions","messageBody":"There are several assumptions that are made at any point\nwithin the code. In some cases these will lead to errors.\n\nDocumenting these assumptions will lead to easier debugging\nand a smoother experience for the user if they can find out more easily\nabout their wrong inputs.\n","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":1},"java":{"insertions":9,"deletions":6}}},{"hash":"766187e90d648ddedd6075cf6999e1e8a4129f5d","isMergeCommit":false,"messageTitle":"Improve code quality","messageBody":"Code quality can contribute greatly to readability of the code.\n\nIn this change, multiple long and deeply-nested methods were\nbroken into smaller components so as to avoid confusion down the line.\n","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":94,"deletions":68}}},{"hash":"7f51920dff24bcbd742b63d866be9fb9e350e70e","isMergeCommit":true,"messageTitle":"Merge pull request #2 from andytoh1/branch-A-CodeQuality","messageBody":"Improve code quality","fileTypesAndContributionMap":{}},{"hash":"417acfbf6b0031b2d90a564c8f7abfd5997f4aa7","isMergeCommit":true,"messageTitle":"Merge pull request #3 from andytoh1/branch-A-Assertions","messageBody":"Add assertions","fileTypesAndContributionMap":{}},{"hash":"20de560dfc82bfca3d37bbbe7efd778fa9a42ab7","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1},"md":{"insertions":66,"deletions":14}}}]}]},"authorFileTypeContributionMap":{"andytoh1":{"java":787,"md":59,"fxml":0,"sh":1,"bat":1,"gradle":20,"txt":4}},"authorContributionVariance":{"andytoh1":76307.93},"authorDisplayNameMap":{"andytoh1":"CS2103T-F11-3 TOH ..ANDY"}} +{"authorDailyContributionsMap":{"andytoh1":[{"date":"2023-08-24","commitResults":[{"hash":"be54eb62370c7bf4c5f42ebaa63560004397b72e","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-0"],"fileTypesAndContributionMap":{"java":{"insertions":7,"deletions":10}}},{"hash":"8c01edb381794a18a37bbc7fbe27ad976b28bc33","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":8,"deletions":0}}},{"hash":"2952594b5ffc710a1ab7b015866ceeae49538a2d","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":2}}},{"hash":"4afb4e8ac6cd143c44911523f54a1f2cf296c0df","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":13,"deletions":0}}},{"hash":"f2860d0fd739b4f6e36b813d08ae352e8294aaa0","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":17,"deletions":2}}},{"hash":"7ff37d08406c0a99195331a4d853bf95e745c133","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"java":{"insertions":39,"deletions":16}}},{"hash":"1cab9410d9a7a0145ed46617b8868386c2c8b7d8","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"java":{"insertions":23,"deletions":1}}}]},{"date":"2023-08-27","commitResults":[{"hash":"537844575b5f68eb31dcd0052598ac599e883bc8","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":0},"bat":{"insertions":1,"deletions":1},"sh":{"insertions":1,"deletions":1}}}]},{"date":"2023-09-03","commitResults":[{"hash":"24743aca20e40d7a6f81a6912bdab27113eac915","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{"java":{"insertions":482,"deletions":7}}},{"hash":"276add239f554cdee0d2894af190d30b2699107d","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"java":{"insertions":370,"deletions":70}}}]},{"date":"2023-09-24","commitResults":[{"hash":"507a00467fee76523c9a6ca8b70a498365260f33","isMergeCommit":true,"messageTitle":"Merge branch \u0027add-gradle-support\u0027","messageBody":"# Conflicts:\n#\tsrc/main/java/Duke.java\n","fileTypesAndContributionMap":{}},{"hash":"8f0342d8d73b53db07e14d87335aab775920831f","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":3}}}]},{"date":"2023-09-26","commitResults":[{"hash":"0a862f1f97500f32d880675d6f846f097cc9aaf4","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-JUnit"],"fileTypesAndContributionMap":{"java":{"insertions":428,"deletions":375}}},{"hash":"de26dda3cb9f6f77bc8c9ad545b89acad0a53621","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-Jar","A-CodingStandard"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}},{"hash":"338f4de7f2f8e130495839f00f65b8d79abebe1a","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":70,"deletions":1}}},{"hash":"18f38eeda7031ab39d3a79d25c6f28f16f581c21","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-9"],"fileTypesAndContributionMap":{"java":{"insertions":18,"deletions":2}}},{"hash":"8305bc353410d5418093467e19b66545b898e93c","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-Javadoc\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"936366f6f480aec68162f9881ef14e763c3985d3","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["Level-10"],"fileTypesAndContributionMap":{"gradle":{"insertions":17,"deletions":0},"java":{"insertions":287,"deletions":67}}},{"hash":"27f48015ef321ae95556e6b58810191c9b71fd38","isMergeCommit":false,"messageTitle":"Add assertions","messageBody":"There are several assumptions that are made at any point\nwithin the code. In some cases these will lead to errors.\n\nDocumenting these assumptions will lead to easier debugging\nand a smoother experience for the user if they can find out more easily\nabout their wrong inputs.\n","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"gradle":{"insertions":2,"deletions":1},"java":{"insertions":9,"deletions":6}}},{"hash":"766187e90d648ddedd6075cf6999e1e8a4129f5d","isMergeCommit":false,"messageTitle":"Improve code quality","messageBody":"Code quality can contribute greatly to readability of the code.\n\nIn this change, multiple long and deeply-nested methods were\nbroken into smaller components so as to avoid confusion down the line.\n","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":94,"deletions":68}}},{"hash":"7f51920dff24bcbd742b63d866be9fb9e350e70e","isMergeCommit":true,"messageTitle":"Merge pull request #2 from andytoh1/branch-A-CodeQuality","messageBody":"Improve code quality","fileTypesAndContributionMap":{}},{"hash":"417acfbf6b0031b2d90a564c8f7abfd5997f4aa7","isMergeCommit":true,"messageTitle":"Merge pull request #3 from andytoh1/branch-A-Assertions","messageBody":"Add assertions","fileTypesAndContributionMap":{}},{"hash":"20de560dfc82bfca3d37bbbe7efd778fa9a42ab7","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"java":{"insertions":1,"deletions":1},"md":{"insertions":66,"deletions":14}}},{"hash":"b8cf9b7c61480c51a69414ec14e7106b08d6b0df","isMergeCommit":false,"messageTitle":"no message","messageBody":"","tags":["A-Release"],"fileTypesAndContributionMap":{"java":{"insertions":5,"deletions":0}}}]}]},"authorFileTypeContributionMap":{"andytoh1":{"java":792,"md":59,"fxml":0,"sh":1,"bat":1,"gradle":20,"txt":4}},"authorContributionVariance":{"andytoh1":76674.43},"authorDisplayNameMap":{"andytoh1":"CS2103T-F11-3 TOH ..ANDY"}} diff --git a/archive.zip b/archive.zip index 01ce7437..d8dff153 100644 Binary files a/archive.zip and b/archive.zip differ diff --git a/reposense-logs/reposense.log.0 b/reposense-logs/reposense.log.0 index 842eeb9b..dd49a2d5 100644 --- a/reposense-logs/reposense.log.0 +++ b/reposense-logs/reposense.log.0 @@ -1,66 +1,66 @@ -Sep 26, 2023 2:06:05 PM reposense.system.LogsManager addFileHandler +Sep 27, 2023 1:13:27 AM reposense.system.LogsManager addFileHandler INFO: Log temp folder has been successfully created -Sep 26, 2023 2:06:05 PM reposense.parser.CsvParser validateHeader +Sep 27, 2023 1:13:27 AM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, repo-config.csv, and recognized columns: Ignore Standalone Config, Repository's Location, Branch, Shallow Cloning, File formats, Ignore Glob List, Ignore Authors List, Find Previous Authors, Ignore Commits List -Sep 26, 2023 2:06:07 PM reposense.parser.CsvParser validateHeader +Sep 27, 2023 1:13:28 AM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, author-config.csv, and recognized columns: Author's Emails, Repository's Location, Author's GitHub ID, Branch, Author's Display Name, Ignore Glob List, Author's Git Author Name -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias scarletblanks found. The alias will belong to the last author - ScarletBlanks -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kb-tay found. The alias will belong to the last author - Kb-Tay -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias ryam found. The alias will belong to the last author - ryamgoh -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jason found. The alias will belong to the last author - jason-raiin -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias h1410101 found. The alias will belong to the last author - H1410101 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias shashahchk found. The alias will belong to the last author - shashahchk -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yucongkoo found. The alias will belong to the last author - yucongkoo -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kokseng1 found. The alias will belong to the last author - Kokseng1 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias vanessamae23 found. The alias will belong to the last author - Vanessamae23 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias singa-pirate found. The alias will belong to the last author - Singa-pirate -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kurt found. The alias will belong to the last author - Kurtyjlee -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nicholastng010601 found. The alias will belong to the last author - nicholastng010601 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias weiennn found. The alias will belong to the last author - Weiennn -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias adammangzijun found. The alias will belong to the last author - adammangzijun -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias scarletblanks found. The alias will belong to the last author - ScarletBlanks -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kb-tay found. The alias will belong to the last author - Kb-Tay -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias ryam found. The alias will belong to the last author - ryamgoh -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias jason found. The alias will belong to the last author - jason-raiin -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias h1410101 found. The alias will belong to the last author - H1410101 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias shashahchk found. The alias will belong to the last author - shashahchk -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias yucongkoo found. The alias will belong to the last author - yucongkoo -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kokseng1 found. The alias will belong to the last author - Kokseng1 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias vanessamae23 found. The alias will belong to the last author - Vanessamae23 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias singa-pirate found. The alias will belong to the last author - Singa-pirate -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias kurt found. The alias will belong to the last author - Kurtyjlee -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias nicholastng010601 found. The alias will belong to the last author - nicholastng010601 -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias weiennn found. The alias will belong to the last author - Weiennn -Sep 26, 2023 2:06:07 PM reposense.model.AuthorConfiguration checkDuplicateAliases +Sep 27, 2023 1:13:28 AM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias adammangzijun found. The alias will belong to the last author - adammangzijun -Sep 26, 2023 2:06:07 PM reposense.git.GitConfig getGlobalGitLfsConfig +Sep 27, 2023 1:13:28 AM reposense.git.GitConfig getGlobalGitLfsConfig WARNING: Could not get global git lfs config java.lang.RuntimeException: reposense.system.CommandRunnerProcessException: Error returned from command git config --global --list on path . : fatal: unable to read config file '/home/runner/.gitconfig': No such file or directory @@ -76,8611 +76,8611 @@ fatal: unable to read config file '/home/runner/.gitconfig': No such file or dir at reposense.system.CommandRunner.runCommand(CommandRunner.java:21) ... 3 more -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/siqirua/ip.git... +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/emzm2023/ip.git... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/CJ-Lee01/ip.git... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/siqirua/ip.git... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/thaddeusong/ip.git... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/thaddeusong/ip.git to complete... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/emzm2023/ip.git to complete... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/CJ-Lee01/ip.git to complete... -Sep 26, 2023 2:06:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/siqirua/ip.git to complete... -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/thaddeusong/ip.git to complete... +Sep 27, 2023 1:13:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/CJ-Lee01/ip.git to complete... +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/siqirua/ip.git completed! -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanteckfang/ip.git... -Sep 26, 2023 2:06:08 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:13:29 AM reposense.report.ReportGenerator analyzeRepos INFO: [1/478] Analyzing https://github.com/siqirua/ip.git (master)... -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanteckfang/ip.git to complete... -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/CJ-Lee01/ip.git completed! -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/siqirua/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/siqirua/ip.git (master)... +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/emzm2023/ip.git completed! +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ph-nathan/ip.git... -Sep 26, 2023 2:06:08 PM reposense.report.ReportGenerator analyzeRepos -INFO: [2/478] Analyzing https://github.com/CJ-Lee01/ip.git (master)... -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [2/478] Analyzing https://github.com/emzm2023/ip.git (master)... +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ph-nathan/ip.git to complete... -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/thaddeusong/ip.git completed! -Sep 26, 2023 2:06:08 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/siqirua/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/butteredyakiimo/ip.git... -Sep 26, 2023 2:06:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/siqirua/ip.git (master)... -Sep 26, 2023 2:06:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/emzm2023/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/butteredyakiimo/ip.git to complete... -Sep 26, 2023 2:06:08 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/CJ-Lee01/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/CJ-Lee01/ip.git (master)... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/emzm2023/ip.git completed! -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/butteredyakiimo/ip.git completed! -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanteckfang/ip.git completed! -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/emzm2023/ip.git (master)... +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/CJ-Lee01/ip.git completed! +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yuxunn/ip.git... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ph-nathan/ip.git completed! -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yuxunn/ip.git to complete... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanteckfang/ip.git completed! +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/RB9823/ip.git... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/TyrusLye/ip.git... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RB9823/ip.git to complete... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/cxo05/ip.git... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/cxo05/ip.git to complete... -Sep 26, 2023 2:06:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ph-nathan/ip.git completed! +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/TyrusLye/ip.git... +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TyrusLye/ip.git to complete... -Sep 26, 2023 2:06:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/CJ-Lee01/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/CJ-Lee01/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/siqirua/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yuxunn/ip.git completed! -Sep 26, 2023 2:06:10 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/CJ-Lee01/ip.git (master) completed! -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:29 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/cxo05/ip.git... +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/cxo05/ip.git to complete... +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/butteredyakiimo/ip.git completed! +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shyanyong/ip.git... -Sep 26, 2023 2:06:10 PM reposense.report.ReportGenerator analyzeRepos -INFO: [3/478] Analyzing https://github.com/thaddeusong/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shyanyong/ip.git to complete... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/TyrusLye/ip.git completed! -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cxo05/ip.git completed! -Sep 26, 2023 2:06:10 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/siqirua/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/emzm2023/ip.git (master)... +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/RB9823/ip.git completed! +Sep 27, 2023 1:13:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/emzm2023/ip.git (master)... +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/howenc/ip.git... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/howenc/ip.git to complete... +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/TyrusLye/ip.git completed! +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kurtyjlee/ip.git... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kurtyjlee/ip.git to complete... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/howenc/ip.git to complete... -Sep 26, 2023 2:06:10 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/thaddeusong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:10 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/thaddeusong/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/siqirua/ip.git (master) completed! -Sep 26, 2023 2:06:10 PM reposense.report.ReportGenerator analyzeRepos -INFO: [4/478] Analyzing https://github.com/emzm2023/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/RB9823/ip.git completed! -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shyanyong/ip.git completed! +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cxo05/ip.git completed! +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/josepholim/ip.git... -Sep 26, 2023 2:06:10 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/emzm2023/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:10 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/emzm2023/ip.git (master)... -Sep 26, 2023 2:06:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/emzm2023/ip.git (master) completed! +Sep 27, 2023 1:13:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [3/478] Analyzing https://github.com/thaddeusong/ip.git (master)... +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/josepholim/ip.git to complete... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shyanyong/ip.git completed! -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/geoffong11/ip.git... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/geoffong11/ip.git to complete... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kurtyjlee/ip.git completed! -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/siqirua/ip.git (master)... +Sep 27, 2023 1:13:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/thaddeusong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/thaddeusong/ip.git (master)... +Sep 27, 2023 1:13:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/siqirua/ip.git (master)... +Sep 27, 2023 1:13:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/siqirua/ip.git (master) completed! +Sep 27, 2023 1:13:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [4/478] Analyzing https://github.com/CJ-Lee01/ip.git (master)... +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/CJ-Lee01/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/CJ-Lee01/ip.git (master)... +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/howenc/ip.git completed! +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jianrong7/ip.git... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jianrong7/ip.git to complete... -Sep 26, 2023 2:06:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/thaddeusong/ip.git (master)... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/howenc/ip.git completed! -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/geoffong11/ip.git completed! +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kurtyjlee/ip.git completed! +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/A1WAYSD/ip.git... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/NgChunMan/ip.git... +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/josepholim/ip.git completed! +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/NgChunMan/ip.git to complete... +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/limjunxian1/ip.git... +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/A1WAYSD/ip.git to complete... -Sep 26, 2023 2:06:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/limjunxian1/ip.git to complete... +Sep 27, 2023 1:13:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/thaddeusong/ip.git (master)... +Sep 27, 2023 1:13:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/CJ-Lee01/ip.git (master)... +Sep 27, 2023 1:13:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/thaddeusong/ip.git (master)... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/josepholim/ip.git completed! -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/NgChunMan/ip.git... -Sep 26, 2023 2:06:11 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/thaddeusong/ip.git (master) completed! -Sep 26, 2023 2:06:11 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [5/478] Analyzing https://github.com/tanteckfang/ip.git (master)... -Sep 26, 2023 2:06:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/NgChunMan/ip.git to complete... -Sep 26, 2023 2:06:12 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:13:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/CJ-Lee01/ip.git (master)... +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/CJ-Lee01/ip.git (master) completed! +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [6/478] Analyzing https://github.com/ph-nathan/ip.git (master)... +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jianrong7/ip.git completed! +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tanteckfang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:13:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tanteckfang/ip.git (master)... -Sep 26, 2023 2:06:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/emzm2023/ip.git (master)... -Sep 26, 2023 2:06:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/emzm2023/ip.git (master)... -Sep 26, 2023 2:06:12 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/emzm2023/ip.git (master) completed! -Sep 26, 2023 2:06:12 PM reposense.report.ReportGenerator analyzeRepos -INFO: [6/478] Analyzing https://github.com/butteredyakiimo/ip.git (master)... -Sep 26, 2023 2:06:12 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/butteredyakiimo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/butteredyakiimo/ip.git (master)... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jianrong7/ip.git completed! -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/limjunxian1/ip.git... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/A1WAYSD/ip.git completed! -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/limjunxian1/ip.git to complete... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jack1e0/ip.git... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ph-nathan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ph-nathan/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jack1e0/ip.git to complete... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/NgChunMan/ip.git completed! -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/hjoneweek/ip.git... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/hjoneweek/ip.git to complete... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/geoffong11/ip.git completed! -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/limjunxian1/ip.git completed! +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/A1WAYSD/ip.git completed! +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dishenggg/ip.git... -Sep 26, 2023 2:06:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dishenggg/ip.git to complete... -Sep 26, 2023 2:06:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanteckfang/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanteckfang/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanteckfang/ip.git (master) completed! -Sep 26, 2023 2:06:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [7/478] Analyzing https://github.com/ph-nathan/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ph-nathan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ph-nathan/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/butteredyakiimo/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/butteredyakiimo/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/limjunxian1/ip.git completed! -Sep 26, 2023 2:06:13 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/butteredyakiimo/ip.git (master) completed! -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zhyuhan/ip.git... -Sep 26, 2023 2:06:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [8/478] Analyzing https://github.com/yuxunn/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zhyuhan/ip.git to complete... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jack1e0/ip.git completed! -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Dioclei/ip.git... +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Dioclei/ip.git to complete... +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/hjoneweek/ip.git completed! -Sep 26, 2023 2:06:13 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yuxunn/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yuxunn/ip.git (master)... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ph-nathan/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/dishenggg/ip.git completed! -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Dioclei/ip.git... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Daphne789/ip.git... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Dioclei/ip.git to complete... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/WinstonLeonard/ip.git... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Daphne789/ip.git to complete... -Sep 26, 2023 2:06:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/WinstonLeonard/ip.git to complete... -Sep 26, 2023 2:06:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ph-nathan/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/WinstonLeonard/ip.git... +Sep 27, 2023 1:13:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ph-nathan/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/WinstonLeonard/ip.git to complete... +Sep 27, 2023 1:13:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ph-nathan/ip.git (master) completed! -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [9/478] Analyzing https://github.com/cxo05/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cxo05/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cxo05/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yuxunn/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yuxunn/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yuxunn/ip.git (master) completed! -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [10/478] Analyzing https://github.com/TyrusLye/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/TyrusLye/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/TyrusLye/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/zhyuhan/ip.git completed! -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [7/478] Analyzing https://github.com/yuxunn/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/peiran18/ip.git... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/peiran18/ip.git to complete... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Daphne789/ip.git completed! -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AriellaCallista/ip.git... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yuxunn/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yuxunn/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanteckfang/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanteckfang/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanteckfang/ip.git (master) completed! +Sep 27, 2023 1:13:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [8/478] Analyzing https://github.com/butteredyakiimo/ip.git (master)... +Sep 27, 2023 1:13:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/butteredyakiimo/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/butteredyakiimo/ip.git (master)... +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Dioclei/ip.git completed! -Sep 26, 2023 2:06:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/TyrusLye/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WinstonLeonard/ip.git completed! -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/migfoo02/ip.git... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AriellaCallista/ip.git... +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AriellaCallista/ip.git to complete... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Daphne789/ip.git completed! +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/migfoo02/ip.git... +Sep 27, 2023 1:13:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yuxunn/ip.git (master)... +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/migfoo02/ip.git to complete... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/peiran18/ip.git completed! +Sep 27, 2023 1:13:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yuxunn/ip.git (master)... +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Jonyxzx/ip.git... -Sep 26, 2023 2:06:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yuxunn/ip.git (master) completed! +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Jonyxzx/ip.git to complete... -Sep 26, 2023 2:06:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/TyrusLye/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/TyrusLye/ip.git (master) completed! -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [11/478] Analyzing https://github.com/RB9823/ip.git (master)... -Sep 26, 2023 2:06:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/RB9823/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/RB9823/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/cxo05/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/cxo05/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/cxo05/ip.git (master) completed! -Sep 26, 2023 2:06:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [12/478] Analyzing https://github.com/shyanyong/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shyanyong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shyanyong/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/peiran18/ip.git completed! -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WinstonLeonard/ip.git completed! +Sep 27, 2023 1:13:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [9/478] Analyzing https://github.com/RB9823/ip.git (master)... +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SynapseProgramming/ip.git... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SynapseProgramming/ip.git to complete... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Jonyxzx/ip.git completed! -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Darren159/ip.git... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/RB9823/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/RB9823/ip.git (master)... +Sep 27, 2023 1:13:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/butteredyakiimo/ip.git (master)... +Sep 27, 2023 1:13:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AriellaCallista/ip.git completed! -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/imkwokyong/ip.git... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Darren159/ip.git... +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Jonyxzx/ip.git completed! +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/butteredyakiimo/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/migfoo02/ip.git completed! +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Darren159/ip.git to complete... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/imkwokyong/ip.git... +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/butteredyakiimo/ip.git (master) completed! +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/imkwokyong/ip.git to complete... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/migfoo02/ip.git completed! -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [10/478] Analyzing https://github.com/TyrusLye/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/joeng03/ip.git... -Sep 26, 2023 2:06:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SynapseProgramming/ip.git completed! +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/joeng03/ip.git to complete... -Sep 26, 2023 2:06:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/vijay-shankaranand/ip.git... +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/TyrusLye/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/TyrusLye/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/vijay-shankaranand/ip.git to complete... +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/RB9823/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/RB9823/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/RB9823/ip.git (master) completed! -Sep 26, 2023 2:06:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [13/478] Analyzing https://github.com/Kurtyjlee/ip.git (master)... -Sep 26, 2023 2:06:15 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Kurtyjlee/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Kurtyjlee/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shyanyong/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SynapseProgramming/ip.git completed! -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/vijay-shankaranand/ip.git... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/vijay-shankaranand/ip.git to complete... -Sep 26, 2023 2:06:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shyanyong/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shyanyong/ip.git (master) completed! -Sep 26, 2023 2:06:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [14/478] Analyzing https://github.com/howenc/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/howenc/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/howenc/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Darren159/ip.git completed! -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [11/478] Analyzing https://github.com/shyanyong/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shyanyong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shyanyong/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/TyrusLye/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/TyrusLye/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/TyrusLye/ip.git (master) completed! +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [12/478] Analyzing https://github.com/cxo05/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cxo05/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cxo05/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/imkwokyong/ip.git completed! +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SelwynAng/ip.git... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/joeng03/ip.git completed! -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SelwynAng/ip.git to complete... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/vijay-shankaranand/ip.git completed! +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jeffrey-jian/ip.git... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/imkwokyong/ip.git completed! -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Darren159/ip.git completed! +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanyyyming/ip.git... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jeffrey-jian/ip.git to complete... -Sep 26, 2023 2:06:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanyyyming/ip.git to complete... -Sep 26, 2023 2:06:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kurtyjlee/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kurtyjlee/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kurtyjlee/ip.git (master) completed! -Sep 26, 2023 2:06:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [15/478] Analyzing https://github.com/josepholim/ip.git (master)... -Sep 26, 2023 2:06:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/josepholim/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/josepholim/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/vijay-shankaranand/ip.git completed! -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JCSnap/ip.git... -Sep 26, 2023 2:06:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/howenc/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jeffrey-jian/ip.git to complete... +Sep 27, 2023 1:13:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JCSnap/ip.git to complete... -Sep 26, 2023 2:06:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/howenc/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/howenc/ip.git (master) completed! -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [16/478] Analyzing https://github.com/jianrong7/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jianrong7/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jianrong7/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SelwynAng/ip.git completed! -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shyanyong/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shyanyong/ip.git (master)... +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shyanyong/ip.git (master) completed! +Sep 27, 2023 1:13:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [13/478] Analyzing https://github.com/howenc/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/howenc/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/howenc/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/cxo05/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/cxo05/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/cxo05/ip.git (master) completed! +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [14/478] Analyzing https://github.com/geoffong11/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/geoffong11/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/geoffong11/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanyyyming/ip.git completed! +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AprupKale/ip.git... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jeffrey-jian/ip.git completed! -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/JCSnap/ip.git completed! +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AprupKale/ip.git to complete... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/woojiahao/ip.git... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/woojiahao/ip.git to complete... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanyyyming/ip.git completed! -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SelwynAng/ip.git completed! +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/PetrichorPrecipice/ip.git... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jeffrey-jian/ip.git completed! +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/PetrichorPrecipice/ip.git to complete... -Sep 26, 2023 2:06:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/josepholim/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/JCSnap/ip.git completed! -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/syamfarh/ip.git... -Sep 26, 2023 2:06:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jianrong7/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/syamfarh/ip.git to complete... -Sep 26, 2023 2:06:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/josepholim/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jianrong7/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jianrong7/ip.git (master) completed! -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/josepholim/ip.git (master) completed! -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [17/478] Analyzing https://github.com/A1WAYSD/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [18/478] Analyzing https://github.com/NgChunMan/ip.git (master)... -Sep 26, 2023 2:06:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/NgChunMan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/NgChunMan/ip.git (master)... -Sep 26, 2023 2:06:18 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/A1WAYSD/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/A1WAYSD/ip.git (master)... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AprupKale/ip.git completed! -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/D-Limiter/ip.git... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/howenc/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/howenc/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/howenc/ip.git (master) completed! +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [15/478] Analyzing https://github.com/Kurtyjlee/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Kurtyjlee/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Kurtyjlee/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/geoffong11/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/geoffong11/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/geoffong11/ip.git (master) completed! +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [16/478] Analyzing https://github.com/josepholim/ip.git (master)... +Sep 27, 2023 1:13:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/josepholim/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/josepholim/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/woojiahao/ip.git completed! +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/PetrichorPrecipice/ip.git completed! -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/syamfarh/ip.git completed! +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/D-Limiter/ip.git... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AprupKale/ip.git completed! +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/coderhuang559/ip.git... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/LINCHENYU2030S/ip.git... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/D-Limiter/ip.git to complete... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/pra-navi/ip.git... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/LINCHENYU2030S/ip.git to complete... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/coderhuang559/ip.git to complete... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/woojiahao/ip.git completed! -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/LINCHENYU2030S/ip.git... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/LINCHENYU2030S/ip.git to complete... -Sep 26, 2023 2:06:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/A1WAYSD/ip.git (master)... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/syamfarh/ip.git completed! -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/pra-navi/ip.git... -Sep 26, 2023 2:06:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/A1WAYSD/ip.git (master)... -Sep 26, 2023 2:06:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/pra-navi/ip.git to complete... -Sep 26, 2023 2:06:18 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/A1WAYSD/ip.git (master) completed! -Sep 26, 2023 2:06:18 PM reposense.report.ReportGenerator analyzeRepos -INFO: [19/478] Analyzing https://github.com/geoffong11/ip.git (master)... -Sep 26, 2023 2:06:18 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/geoffong11/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/geoffong11/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/NgChunMan/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/D-Limiter/ip.git completed! -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/phiphi-tan/ip.git... -Sep 26, 2023 2:06:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/NgChunMan/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kurtyjlee/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kurtyjlee/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kurtyjlee/ip.git (master) completed! +Sep 27, 2023 1:13:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [17/478] Analyzing https://github.com/jianrong7/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jianrong7/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jianrong7/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/josepholim/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/josepholim/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/josepholim/ip.git (master) completed! +Sep 27, 2023 1:13:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [18/478] Analyzing https://github.com/NgChunMan/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/NgChunMan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/NgChunMan/ip.git (master)... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LINCHENYU2030S/ip.git completed! -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/phiphi-tan/ip.git... +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/pra-navi/ip.git completed! +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/phiphi-tan/ip.git to complete... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/coderhuang559/ip.git completed! -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/NgChunMan/ip.git (master) completed! -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [20/478] Analyzing https://github.com/limjunxian1/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ktzy0305/ip.git... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/D-Limiter/ip.git completed! +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/coderhuang559/ip.git completed! +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LordSaumya/ip.git... -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/limjunxian1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/limjunxian1/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ktzy0305/ip.git to complete... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LordSaumya/ip.git to complete... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/pra-navi/ip.git completed! -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Chen1x/ip.git... -Sep 26, 2023 2:06:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/geoffong11/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Chen1x/ip.git to complete... -Sep 26, 2023 2:06:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/geoffong11/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/geoffong11/ip.git (master) completed! -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [21/478] Analyzing https://github.com/hjoneweek/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/hjoneweek/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/hjoneweek/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/limjunxian1/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/limjunxian1/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/limjunxian1/ip.git (master) completed! -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [22/478] Analyzing https://github.com/jack1e0/ip.git (master)... -Sep 26, 2023 2:06:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jack1e0/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jack1e0/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/phiphi-tan/ip.git completed! -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jianrong7/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jianrong7/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jianrong7/ip.git (master) completed! +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [19/478] Analyzing https://github.com/limjunxian1/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/limjunxian1/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/limjunxian1/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LordSaumya/ip.git completed! +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yanghengtang/ip.git... -Sep 26, 2023 2:06:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/hjoneweek/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yanghengtang/ip.git to complete... -Sep 26, 2023 2:06:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/hjoneweek/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/NgChunMan/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/phiphi-tan/ip.git completed! +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/NgChunMan/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/NgChunMan/ip.git (master) completed! +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [20/478] Analyzing https://github.com/A1WAYSD/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ktzy0305/ip.git completed! -Sep 26, 2023 2:06:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/hjoneweek/ip.git (master) completed! -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Chen1x/ip.git completed! +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/johnnythesnake12/ip.git... -Sep 26, 2023 2:06:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [23/478] Analyzing https://github.com/dishenggg/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/johnnythesnake12/ip.git to complete... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Chen1x/ip.git completed! -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LordSaumya/ip.git completed! -Sep 26, 2023 2:06:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dishenggg/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dishenggg/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/oeggy03/ip.git... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/p-xp/ip.git... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/oeggy03/ip.git to complete... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/p-xp/ip.git to complete... -Sep 26, 2023 2:06:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jack1e0/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jack1e0/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jack1e0/ip.git (master) completed! -Sep 26, 2023 2:06:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [24/478] Analyzing https://github.com/zhyuhan/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zhyuhan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zhyuhan/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dishenggg/ip.git (master)... -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/oeggy03/ip.git to complete... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/A1WAYSD/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/A1WAYSD/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/limjunxian1/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/limjunxian1/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/limjunxian1/ip.git (master) completed! +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [21/478] Analyzing https://github.com/jack1e0/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jack1e0/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jack1e0/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yanghengtang/ip.git completed! -Sep 26, 2023 2:06:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/matochichap/ip.git... -Sep 26, 2023 2:06:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dishenggg/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/matochichap/ip.git to complete... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/johnnythesnake12/ip.git completed! -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dishenggg/ip.git (master) completed! -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [25/478] Analyzing https://github.com/Daphne789/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/A1WAYSD/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/A1WAYSD/ip.git (master)... +Sep 27, 2023 1:13:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/A1WAYSD/ip.git (master) completed! +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [22/478] Analyzing https://github.com/hjoneweek/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/p-xp/ip.git completed! +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/hjoneweek/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/hjoneweek/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/applepiofmyeye/ip.git... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/applepiofmyeye/ip.git to complete... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/oeggy03/ip.git completed! -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/p-xp/ip.git completed! -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/johnnythesnake12/ip.git completed! +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TiwKangXu/ip.git... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/TiwKangXu/ip.git to complete... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/oeggy03/ip.git completed! +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ScarletBlanks/ip.git... -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Daphne789/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Daphne789/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ScarletBlanks/ip.git to complete... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/TiwKangXu/ip.git to complete... -Sep 26, 2023 2:06:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhyuhan/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhyuhan/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhyuhan/ip.git (master) completed! -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [26/478] Analyzing https://github.com/Dioclei/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Dioclei/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Dioclei/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Daphne789/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Daphne789/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Daphne789/ip.git (master) completed! -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [27/478] Analyzing https://github.com/WinstonLeonard/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jack1e0/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jack1e0/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jack1e0/ip.git (master) completed! +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [23/478] Analyzing https://github.com/dishenggg/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dishenggg/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dishenggg/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/matochichap/ip.git completed! -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chiayunrong/ip.git... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chiayunrong/ip.git to complete... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/TiwKangXu/ip.git completed! -Sep 26, 2023 2:06:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WinstonLeonard/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WinstonLeonard/ip.git (master)... -Sep 26, 2023 2:06:21 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/devanshubisht/ip.git... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/hjoneweek/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ScarletBlanks/ip.git completed! -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/devanshubisht/ip.git to complete... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/devanshubisht/ip.git... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/TiwKangXu/ip.git completed! +Sep 27, 2023 1:13:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/hjoneweek/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jx124/ip.git... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/hjoneweek/ip.git (master) completed! +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/devanshubisht/ip.git to complete... +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [24/478] Analyzing https://github.com/zhyuhan/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jx124/ip.git to complete... -Sep 26, 2023 2:06:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Dioclei/ip.git (master)... -Sep 26, 2023 2:06:22 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Dioclei/ip.git (master)... -Sep 26, 2023 2:06:22 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Dioclei/ip.git (master) completed! -Sep 26, 2023 2:06:22 PM reposense.report.ReportGenerator analyzeRepos -INFO: [28/478] Analyzing https://github.com/peiran18/ip.git (master)... -Sep 26, 2023 2:06:22 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/peiran18/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:22 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/peiran18/ip.git (master)... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zhyuhan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zhyuhan/ip.git (master)... +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/chiayunrong/ip.git completed! -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Clin-lyx/ip.git... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Clin-lyx/ip.git to complete... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/devanshubisht/ip.git completed! -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dishenggg/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dishenggg/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dishenggg/ip.git (master) completed! +Sep 27, 2023 1:13:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [25/478] Analyzing https://github.com/Dioclei/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jx124/ip.git completed! -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AryanG01/ip.git... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/kayabuttertoastt/ip.git... -Sep 26, 2023 2:06:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/WinstonLeonard/ip.git (master)... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AryanG01/ip.git to complete... -Sep 26, 2023 2:06:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/devanshubisht/ip.git completed! +Sep 27, 2023 1:13:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Dioclei/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Dioclei/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/kayabuttertoastt/ip.git... +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kayabuttertoastt/ip.git to complete... -Sep 26, 2023 2:06:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/WinstonLeonard/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/WinstonLeonard/ip.git (master) completed! -Sep 26, 2023 2:06:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [29/478] Analyzing https://github.com/Jonyxzx/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Jonyxzx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Jonyxzx/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/applepiofmyeye/ip.git completed! -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Clin-lyx/ip.git completed! +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sheryew/ip.git... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sheryew/ip.git to complete... -Sep 26, 2023 2:06:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/peiran18/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/peiran18/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/peiran18/ip.git (master) completed! -Sep 26, 2023 2:06:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [30/478] Analyzing https://github.com/AriellaCallista/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AriellaCallista/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AriellaCallista/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AryanG01/ip.git completed! -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/applepiofmyeye/ip.git completed! +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jonasongg/ip.git... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jonasongg/ip.git to complete... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kayabuttertoastt/ip.git completed! -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhyuhan/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhyuhan/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhyuhan/ip.git (master) completed! +Sep 27, 2023 1:13:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [26/478] Analyzing https://github.com/Daphne789/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Daphne789/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Daphne789/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AryanG01/ip.git completed! +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yiwen101/ip.git... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Dioclei/ip.git (master)... +Sep 27, 2023 1:13:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yiwen101/ip.git to complete... -Sep 26, 2023 2:06:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Jonyxzx/ip.git (master)... -Sep 26, 2023 2:06:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sheryew/ip.git completed! -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Dioclei/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Dioclei/ip.git (master) completed! +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [27/478] Analyzing https://github.com/peiran18/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/peiran18/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/peiran18/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kayabuttertoastt/ip.git completed! +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tiongMax/ip.git... -Sep 26, 2023 2:06:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Jonyxzx/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tiongMax/ip.git to complete... -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Jonyxzx/ip.git (master) completed! -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [31/478] Analyzing https://github.com/migfoo02/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/migfoo02/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/migfoo02/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AriellaCallista/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AriellaCallista/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AriellaCallista/ip.git (master) completed! -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [32/478] Analyzing https://github.com/SynapseProgramming/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SynapseProgramming/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SynapseProgramming/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sheryew/ip.git completed! +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jonasongg/ip.git completed! -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chuababyy/ip.git... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chuababyy/ip.git to complete... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yiwen101/ip.git completed! -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/supermii2/ip.git... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/supermii2/ip.git to complete... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tiongMax/ip.git completed! -Sep 26, 2023 2:06:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/migfoo02/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Daphne789/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Daphne789/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Daphne789/ip.git (master) completed! +Sep 27, 2023 1:13:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/peiran18/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [28/478] Analyzing https://github.com/WinstonLeonard/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yiwen101/ip.git completed! +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/remuslum/ip.git... -Sep 26, 2023 2:06:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/remuslum/ip.git to complete... -Sep 26, 2023 2:06:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/migfoo02/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/migfoo02/ip.git (master) completed! -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [33/478] Analyzing https://github.com/Darren159/ip.git (master)... -Sep 26, 2023 2:06:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Darren159/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Darren159/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SynapseProgramming/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SynapseProgramming/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SynapseProgramming/ip.git (master) completed! -Sep 26, 2023 2:06:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [34/478] Analyzing https://github.com/joeng03/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/joeng03/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/joeng03/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chuababyy/ip.git completed! -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/peiran18/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/peiran18/ip.git (master) completed! +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [29/478] Analyzing https://github.com/AriellaCallista/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WinstonLeonard/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WinstonLeonard/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AriellaCallista/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AriellaCallista/ip.git (master)... +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tiongMax/ip.git completed! +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kanna-1/ip.git... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kanna-1/ip.git to complete... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Clin-lyx/ip.git completed! -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chuababyy/ip.git completed! +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicolengk/ip.git... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicolengk/ip.git to complete... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/supermii2/ip.git completed! -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/newway1814/ip.git... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/newway1814/ip.git to complete... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/remuslum/ip.git completed! -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/WinstonLeonard/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/glenngnng/ip.git... -Sep 26, 2023 2:06:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/glenngnng/ip.git to complete... -Sep 26, 2023 2:06:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Darren159/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Darren159/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Darren159/ip.git (master) completed! -Sep 26, 2023 2:06:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [35/478] Analyzing https://github.com/imkwokyong/ip.git (master)... -Sep 26, 2023 2:06:25 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/imkwokyong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/imkwokyong/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/joeng03/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/joeng03/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/joeng03/ip.git (master) completed! -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [36/478] Analyzing https://github.com/vijay-shankaranand/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/vijay-shankaranand/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/vijay-shankaranand/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/glenngnng/ip.git completed! -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/WinstonLeonard/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/WinstonLeonard/ip.git (master) completed! +Sep 27, 2023 1:13:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [30/478] Analyzing https://github.com/Jonyxzx/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Jonyxzx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Jonyxzx/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AriellaCallista/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AriellaCallista/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AriellaCallista/ip.git (master) completed! +Sep 27, 2023 1:13:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [31/478] Analyzing https://github.com/migfoo02/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/migfoo02/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/migfoo02/ip.git (master)... +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nicolengk/ip.git completed! +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zsh-eng/ip.git... -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zsh-eng/ip.git to complete... -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/newway1814/ip.git completed! -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nicolengk/ip.git completed! -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mingyuanc/ip.git... -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/LamJiuFong/ip.git... -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mingyuanc/ip.git to complete... -Sep 26, 2023 2:06:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/glenngnng/ip.git completed! +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/LamJiuFong/ip.git... +Sep 27, 2023 1:13:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LamJiuFong/ip.git to complete... -Sep 26, 2023 2:06:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/imkwokyong/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/vijay-shankaranand/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/imkwokyong/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/imkwokyong/ip.git (master) completed! -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [37/478] Analyzing https://github.com/SelwynAng/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/vijay-shankaranand/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/vijay-shankaranand/ip.git (master) completed! -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [38/478] Analyzing https://github.com/jeffrey-jian/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SelwynAng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SelwynAng/ip.git (master)... -Sep 26, 2023 2:06:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jeffrey-jian/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jeffrey-jian/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zsh-eng/ip.git completed! -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kanna-1/ip.git completed! +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/GlendaChong/ip.git... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/GlendaChong/ip.git to complete... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LamJiuFong/ip.git completed! -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/starrylight99/ip.git... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mingyuanc/ip.git completed! -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AustinHuang1203/ip.git... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/starrylight99/ip.git to complete... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AustinHuang1203/ip.git to complete... -Sep 26, 2023 2:06:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SelwynAng/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SelwynAng/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SelwynAng/ip.git (master) completed! -Sep 26, 2023 2:06:27 PM reposense.report.ReportGenerator analyzeRepos -INFO: [39/478] Analyzing https://github.com/tanyyyming/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jeffrey-jian/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kanna-1/ip.git completed! -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/migfoo02/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Jonyxzx/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/migfoo02/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/migfoo02/ip.git (master) completed! +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [32/478] Analyzing https://github.com/SynapseProgramming/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Jonyxzx/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Jonyxzx/ip.git (master) completed! +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [33/478] Analyzing https://github.com/imkwokyong/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SynapseProgramming/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SynapseProgramming/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zsh-eng/ip.git completed! +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/imkwokyong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/imkwokyong/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/starrylight99/ip.git... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/starrylight99/ip.git to complete... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mingyuanc/ip.git completed! +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AustinHuang1203/ip.git... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AustinHuang1203/ip.git to complete... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LamJiuFong/ip.git completed! +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seewhyjay/ip.git... -Sep 26, 2023 2:06:27 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/seewhyjay/ip.git to complete... -Sep 26, 2023 2:06:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jeffrey-jian/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanyyyming/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanyyyming/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jeffrey-jian/ip.git (master) completed! -Sep 26, 2023 2:06:27 PM reposense.report.ReportGenerator analyzeRepos -INFO: [40/478] Analyzing https://github.com/JCSnap/ip.git (master)... -Sep 26, 2023 2:06:27 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JCSnap/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JCSnap/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/GlendaChong/ip.git completed! -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/starrylight99/ip.git completed! -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ruth-lim/ip.git... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/limzhenwy/ip.git... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ruth-lim/ip.git to complete... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/limzhenwy/ip.git to complete... -Sep 26, 2023 2:06:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/JCSnap/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SynapseProgramming/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SynapseProgramming/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SynapseProgramming/ip.git (master) completed! +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AustinHuang1203/ip.git completed! -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/starrylight99/ip.git completed! +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [34/478] Analyzing https://github.com/joeng03/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/limzhenwy/ip.git... +Sep 27, 2023 1:13:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/imkwokyong/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xCOLOURx/ip.git... -Sep 26, 2023 2:06:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/JCSnap/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/limzhenwy/ip.git to complete... +Sep 27, 2023 1:13:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/joeng03/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/joeng03/ip.git (master)... +Sep 27, 2023 1:13:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xCOLOURx/ip.git to complete... -Sep 26, 2023 2:06:28 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/JCSnap/ip.git (master) completed! -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/imkwokyong/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/imkwokyong/ip.git (master) completed! +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [35/478] Analyzing https://github.com/vijay-shankaranand/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/seewhyjay/ip.git completed! -Sep 26, 2023 2:06:28 PM reposense.report.ReportGenerator analyzeRepos -INFO: [41/478] Analyzing https://github.com/AprupKale/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zacwong2151/ip.git... -Sep 26, 2023 2:06:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zacwong2151/ip.git to complete... -Sep 26, 2023 2:06:28 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AprupKale/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:28 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AprupKale/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanyyyming/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanyyyming/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanyyyming/ip.git (master) completed! -Sep 26, 2023 2:06:28 PM reposense.report.ReportGenerator analyzeRepos -INFO: [42/478] Analyzing https://github.com/PetrichorPrecipice/ip.git (master)... -Sep 26, 2023 2:06:28 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/PetrichorPrecipice/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:28 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/PetrichorPrecipice/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AprupKale/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AprupKale/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AprupKale/ip.git (master) completed! -Sep 26, 2023 2:06:29 PM reposense.report.ReportGenerator analyzeRepos -INFO: [43/478] Analyzing https://github.com/woojiahao/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/woojiahao/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/woojiahao/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zacwong2151/ip.git completed! -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/vijay-shankaranand/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/vijay-shankaranand/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ruth-lim/ip.git completed! +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Zjinnnn/ip.git... -Sep 26, 2023 2:06:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/PetrichorPrecipice/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/limzhenwy/ip.git completed! -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Zjinnnn/ip.git to complete... -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/vijay-shankaranand/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/vijay-shankaranand/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/vijay-shankaranand/ip.git (master) completed! +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [36/478] Analyzing https://github.com/Darren159/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/limzhenwy/ip.git completed! +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Darren159/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Darren159/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/awhb/ip.git... -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/awhb/ip.git to complete... -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/xCOLOURx/ip.git completed! -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/teoks0199/ip.git... -Sep 26, 2023 2:06:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/joeng03/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zacwong2151/ip.git completed! +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/teoks0199/ip.git to complete... -Sep 26, 2023 2:06:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/PetrichorPrecipice/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/PetrichorPrecipice/ip.git (master) completed! -Sep 26, 2023 2:06:29 PM reposense.report.ReportGenerator analyzeRepos -INFO: [44/478] Analyzing https://github.com/syamfarh/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/syamfarh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/syamfarh/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/syamfarh/ip.git (master)... -Sep 26, 2023 2:06:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/syamfarh/ip.git (master)... -Sep 26, 2023 2:06:30 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/syamfarh/ip.git (master) completed! -Sep 26, 2023 2:06:30 PM reposense.report.ReportGenerator analyzeRepos -INFO: [45/478] Analyzing https://github.com/D-Limiter/ip.git (master)... -Sep 26, 2023 2:06:30 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/D-Limiter/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/D-Limiter/ip.git (master)... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/teoks0199/ip.git completed! -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/qz1004/ip.git... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Zjinnnn/ip.git completed! -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/joeng03/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/qz1004/ip.git to complete... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/awhb/ip.git completed! -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/joeng03/ip.git (master) completed! +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [37/478] Analyzing https://github.com/tanyyyming/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanyyyming/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanyyyming/ip.git (master)... +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Zjinnnn/ip.git completed! +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/pangyyen/ip.git... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Mahidharah/ip.git... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/pangyyen/ip.git to complete... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ruth-lim/ip.git completed! -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/teoks0199/ip.git completed! +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Mahidharah/ip.git... +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Mahidharah/ip.git to complete... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/awhb/ip.git completed! +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jason-raiin/ip.git... -Sep 26, 2023 2:06:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jason-raiin/ip.git to complete... -Sep 26, 2023 2:06:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/woojiahao/ip.git (master)... -Sep 26, 2023 2:06:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/woojiahao/ip.git (master)... -Sep 26, 2023 2:06:30 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/woojiahao/ip.git (master) completed! -Sep 26, 2023 2:06:30 PM reposense.report.ReportGenerator analyzeRepos -INFO: [46/478] Analyzing https://github.com/LINCHENYU2030S/ip.git (master)... -Sep 26, 2023 2:06:30 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LINCHENYU2030S/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LINCHENYU2030S/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/D-Limiter/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/D-Limiter/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/D-Limiter/ip.git (master) completed! -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator analyzeRepos -INFO: [47/478] Analyzing https://github.com/coderhuang559/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Mahidharah/ip.git completed! -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/pangyyen/ip.git completed! -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/coderhuang559/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/coderhuang559/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/qz1004/ip.git completed! +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ravern/ip.git... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jason-raiin/ip.git completed! -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ravern/ip.git to complete... +Sep 27, 2023 1:13:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanyyyming/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Darren159/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanyyyming/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanyyyming/ip.git (master) completed! +Sep 27, 2023 1:13:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [38/478] Analyzing https://github.com/JCSnap/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Darren159/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Darren159/ip.git (master) completed! +Sep 27, 2023 1:13:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [39/478] Analyzing https://github.com/SelwynAng/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JCSnap/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JCSnap/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SelwynAng/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SelwynAng/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/pangyyen/ip.git completed! +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bobscodedump/ip.git... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LINCHENYU2030S/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nixonwidjaja/ip.git... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bobscodedump/ip.git to complete... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ravern/ip.git to complete... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/qz1004/ip.git completed! -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Mahidharah/ip.git completed! +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nixonwidjaja/ip.git... +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nixonwidjaja/ip.git to complete... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jason-raiin/ip.git completed! +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/techjay-c/ip.git... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LINCHENYU2030S/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LINCHENYU2030S/ip.git (master) completed! -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator analyzeRepos -INFO: [48/478] Analyzing https://github.com/pra-navi/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/techjay-c/ip.git to complete... -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/pra-navi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/pra-navi/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/coderhuang559/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/coderhuang559/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/coderhuang559/ip.git (master) completed! -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator analyzeRepos -INFO: [49/478] Analyzing https://github.com/phiphi-tan/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/pra-navi/ip.git (master)... -Sep 26, 2023 2:06:31 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/phiphi-tan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/phiphi-tan/ip.git (master)... -Sep 26, 2023 2:06:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/pra-navi/ip.git (master)... -Sep 26, 2023 2:06:32 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/pra-navi/ip.git (master) completed! -Sep 26, 2023 2:06:32 PM reposense.report.ReportGenerator analyzeRepos -INFO: [50/478] Analyzing https://github.com/ktzy0305/ip.git (master)... -Sep 26, 2023 2:06:32 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ktzy0305/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ktzy0305/ip.git (master)... -Sep 26, 2023 2:06:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/JCSnap/ip.git (master)... +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ravern/ip.git completed! -Sep 26, 2023 2:06:32 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryanozx/ip.git... -Sep 26, 2023 2:06:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/JCSnap/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/JCSnap/ip.git (master) completed! +Sep 27, 2023 1:13:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [40/478] Analyzing https://github.com/jeffrey-jian/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ryanozx/ip.git to complete... -Sep 26, 2023 2:06:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jeffrey-jian/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jeffrey-jian/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SelwynAng/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SelwynAng/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SelwynAng/ip.git (master) completed! +Sep 27, 2023 1:13:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [41/478] Analyzing https://github.com/woojiahao/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/woojiahao/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/woojiahao/ip.git (master)... +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/techjay-c/ip.git completed! -Sep 26, 2023 2:06:32 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LuahJunYang/ip.git... -Sep 26, 2023 2:06:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LuahJunYang/ip.git to complete... -Sep 26, 2023 2:06:32 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/phiphi-tan/ip.git (master)... -Sep 26, 2023 2:06:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/phiphi-tan/ip.git (master)... -Sep 26, 2023 2:06:33 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/phiphi-tan/ip.git (master) completed! -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/bobscodedump/ip.git completed! -Sep 26, 2023 2:06:33 PM reposense.report.ReportGenerator analyzeRepos -INFO: [51/478] Analyzing https://github.com/Chen1x/ip.git (master)... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/HEEaZ/ip.git... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/HEEaZ/ip.git to complete... -Sep 26, 2023 2:06:33 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Chen1x/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:33 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Chen1x/ip.git (master)... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LuahJunYang/ip.git completed! -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ryanozx/ip.git completed! +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dom-buri/ip.git... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dom-buri/ip.git to complete... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nixonwidjaja/ip.git completed! -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jeffrey-jian/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LuahJunYang/ip.git completed! +Sep 27, 2023 1:13:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jeffrey-jian/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jeffrey-jian/ip.git (master) completed! +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [42/478] Analyzing https://github.com/syamfarh/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlainS87/ip.git... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlainS87/ip.git to complete... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ryanozx/ip.git completed! -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/tiongjjyi/ip.git... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tiongjjyi/ip.git to complete... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nixonwidjaja/ip.git completed! +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/HEEaZ/ip.git completed! -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/syamfarh/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/syamfarh/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/tiongjjyi/ip.git... +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Vanessamae23/ip.git... -Sep 26, 2023 2:06:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Vanessamae23/ip.git to complete... -Sep 26, 2023 2:06:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Chen1x/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ktzy0305/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Chen1x/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Chen1x/ip.git (master) completed! -Sep 26, 2023 2:06:34 PM reposense.report.ReportGenerator analyzeRepos -INFO: [52/478] Analyzing https://github.com/LordSaumya/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ktzy0305/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LordSaumya/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LordSaumya/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ktzy0305/ip.git (master) completed! -Sep 26, 2023 2:06:34 PM reposense.report.ReportGenerator analyzeRepos -INFO: [53/478] Analyzing https://github.com/yanghengtang/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yanghengtang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yanghengtang/ip.git (master)... -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tiongjjyi/ip.git to complete... +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/dom-buri/ip.git completed! -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/fuyiqiao/ip.git... -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/fuyiqiao/ip.git to complete... -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tiongjjyi/ip.git completed! -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/woojiahao/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/syamfarh/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/woojiahao/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/syamfarh/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/syamfarh/ip.git (master) completed! +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [43/478] Analyzing https://github.com/AprupKale/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/woojiahao/ip.git (master) completed! +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [44/478] Analyzing https://github.com/PetrichorPrecipice/ip.git (master)... +Sep 27, 2023 1:13:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AprupKale/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AprupKale/ip.git (master)... +Sep 27, 2023 1:13:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/PetrichorPrecipice/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/PetrichorPrecipice/ip.git (master)... +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Vanessamae23/ip.git completed! +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/spatuly/ip.git... -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/spatuly/ip.git to complete... -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Vanessamae23/ip.git completed! -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/tanshiyu1999/ip.git... -Sep 26, 2023 2:06:34 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tanshiyu1999/ip.git to complete... -Sep 26, 2023 2:06:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LordSaumya/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tiongjjyi/ip.git completed! +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/fuyiqiao/ip.git completed! -Sep 26, 2023 2:06:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LordSaumya/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/tanshiyu1999/ip.git... +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kb-Tay/ip.git... -Sep 26, 2023 2:06:35 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LordSaumya/ip.git (master) completed! -Sep 26, 2023 2:06:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [54/478] Analyzing https://github.com/johnnythesnake12/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tanshiyu1999/ip.git to complete... +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kb-Tay/ip.git to complete... -Sep 26, 2023 2:06:35 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/johnnythesnake12/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/johnnythesnake12/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanshiyu1999/ip.git completed! -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/spatuly/ip.git completed! +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/beatricecst/ip.git... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/beatricecst/ip.git to complete... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/spatuly/ip.git completed! -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kb-Tay/ip.git completed! +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanveersingh10/ip.git... -Sep 26, 2023 2:06:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanveersingh10/ip.git to complete... -Sep 26, 2023 2:06:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yanghengtang/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yanghengtang/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yanghengtang/ip.git (master) completed! -Sep 26, 2023 2:06:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [55/478] Analyzing https://github.com/oeggy03/ip.git (master)... -Sep 26, 2023 2:06:35 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/oeggy03/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/oeggy03/ip.git (master)... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kb-Tay/ip.git completed! -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AprupKale/ip.git (master)... +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanshiyu1999/ip.git completed! +Sep 27, 2023 1:13:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/thienmy0/ip.git... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AprupKale/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AprupKale/ip.git (master) completed! +Sep 27, 2023 1:13:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [45/478] Analyzing https://github.com/LINCHENYU2030S/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/thienmy0/ip.git to complete... -Sep 26, 2023 2:06:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/johnnythesnake12/ip.git (master)... -Sep 26, 2023 2:06:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/johnnythesnake12/ip.git (master)... -Sep 26, 2023 2:06:36 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/johnnythesnake12/ip.git (master) completed! -Sep 26, 2023 2:06:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [56/478] Analyzing https://github.com/p-xp/ip.git (master)... -Sep 26, 2023 2:06:36 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/p-xp/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/p-xp/ip.git (master)... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LINCHENYU2030S/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LINCHENYU2030S/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/PetrichorPrecipice/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/PetrichorPrecipice/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/PetrichorPrecipice/ip.git (master) completed! +Sep 27, 2023 1:13:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [46/478] Analyzing https://github.com/pra-navi/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/beatricecst/ip.git completed! -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/s0ngyang/ip.git... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/pra-navi/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/pra-navi/ip.git (master)... +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/s0ngyang/ip.git to complete... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tanveersingh10/ip.git completed! -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ldinghan/ip.git... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ldinghan/ip.git to complete... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/thienmy0/ip.git completed! -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/feifeiraindrops/ip.git... -Sep 26, 2023 2:06:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:48 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/feifeiraindrops/ip.git to complete... -Sep 26, 2023 2:06:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/oeggy03/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/oeggy03/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/p-xp/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/oeggy03/ip.git (master) completed! -Sep 26, 2023 2:06:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [57/478] Analyzing https://github.com/matochichap/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/matochichap/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/matochichap/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/p-xp/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/p-xp/ip.git (master) completed! -Sep 26, 2023 2:06:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [58/478] Analyzing https://github.com/TiwKangXu/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/s0ngyang/ip.git completed! -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryanongwx/ip.git... -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ryanongwx/ip.git to complete... -Sep 26, 2023 2:06:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/TiwKangXu/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/TiwKangXu/ip.git (master)... -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LINCHENYU2030S/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LINCHENYU2030S/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LINCHENYU2030S/ip.git (master) completed! +Sep 27, 2023 1:13:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [47/478] Analyzing https://github.com/coderhuang559/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ldinghan/ip.git completed! -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kwangthiag/ip.git... -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kwangthiag/ip.git to complete... -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/coderhuang559/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/coderhuang559/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/pra-navi/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/pra-navi/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/pra-navi/ip.git (master) completed! +Sep 27, 2023 1:13:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [48/478] Analyzing https://github.com/D-Limiter/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/feifeiraindrops/ip.git completed! -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/elhy1999/ip.git... -Sep 26, 2023 2:06:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/D-Limiter/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/D-Limiter/ip.git (master)... +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/elhy1999/ip.git to complete... -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ryanongwx/ip.git completed! -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/songgthu/ip.git... -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:49 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/songgthu/ip.git to complete... -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kwangthiag/ip.git completed! -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/GohTengFong/ip.git... -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/GohTengFong/ip.git to complete... -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/elhy1999/ip.git completed! -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/simbayippy/ip.git... -Sep 26, 2023 2:06:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/songgthu/ip.git completed! +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/simbayippy/ip.git to complete... -Sep 26, 2023 2:06:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/TiwKangXu/ip.git (master)... -Sep 26, 2023 2:06:38 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/TiwKangXu/ip.git (master)... -Sep 26, 2023 2:06:38 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/TiwKangXu/ip.git (master) completed! -Sep 26, 2023 2:06:38 PM reposense.report.ReportGenerator analyzeRepos -INFO: [59/478] Analyzing https://github.com/ScarletBlanks/ip.git (master)... -Sep 26, 2023 2:06:38 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ScarletBlanks/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:38 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ScarletBlanks/ip.git (master)... -Sep 26, 2023 2:06:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/matochichap/ip.git (master)... -Sep 26, 2023 2:06:38 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/matochichap/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/matochichap/ip.git (master) completed! -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [60/478] Analyzing https://github.com/chiayunrong/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AlainS87/ip.git completed! -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Khaleelur-Rahman/ip.git... -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/chiayunrong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/chiayunrong/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Khaleelur-Rahman/ip.git to complete... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/songgthu/ip.git completed! -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/coderhuang559/ip.git (master)... +Sep 27, 2023 1:13:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/coderhuang559/ip.git (master)... +Sep 27, 2023 1:13:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/coderhuang559/ip.git (master) completed! +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/GohTengFong/ip.git completed! +Sep 27, 2023 1:13:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [49/478] Analyzing https://github.com/LordSaumya/ip.git (master)... +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/proto-aiken-13/ip.git... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/proto-aiken-13/ip.git to complete... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/GohTengFong/ip.git completed! -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/bwangpj/ip.git... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/bwangpj/ip.git to complete... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LordSaumya/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LordSaumya/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Khaleelur-Rahman/ip.git completed! +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/simbayippy/ip.git completed! -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/bwangpj/ip.git... +Sep 27, 2023 1:13:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/D-Limiter/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/weeweh/ip.git... -Sep 26, 2023 2:06:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ScarletBlanks/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/bwangpj/ip.git to complete... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/weeweh/ip.git to complete... -Sep 26, 2023 2:06:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ScarletBlanks/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ScarletBlanks/ip.git (master) completed! -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [61/478] Analyzing https://github.com/devanshubisht/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/devanshubisht/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/devanshubisht/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chiayunrong/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chiayunrong/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chiayunrong/ip.git (master) completed! -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [62/478] Analyzing https://github.com/jx124/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Khaleelur-Rahman/ip.git completed! -Sep 26, 2023 2:06:39 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jx124/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jx124/ip.git (master)... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/D-Limiter/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/D-Limiter/ip.git (master) completed! +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [50/478] Analyzing https://github.com/phiphi-tan/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AlainS87/ip.git completed! +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/s-peiran/ip.git... -Sep 26, 2023 2:06:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/s-peiran/ip.git to complete... -Sep 26, 2023 2:06:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/devanshubisht/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/devanshubisht/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/devanshubisht/ip.git (master) completed! -Sep 26, 2023 2:06:40 PM reposense.report.ReportGenerator analyzeRepos -INFO: [63/478] Analyzing https://github.com/applepiofmyeye/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/phiphi-tan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/phiphi-tan/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/proto-aiken-13/ip.git completed! -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jylow/ip.git... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jylow/ip.git to complete... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/weeweh/ip.git completed! -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LordSaumya/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LordSaumya/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LordSaumya/ip.git (master) completed! +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [51/478] Analyzing https://github.com/ktzy0305/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ktzy0305/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ktzy0305/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/phiphi-tan/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/bwangpj/ip.git completed! +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lawruixi/ip.git... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/phiphi-tan/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/phiphi-tan/ip.git (master) completed! +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [52/478] Analyzing https://github.com/Chen1x/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lawruixi/ip.git to complete... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/bwangpj/ip.git completed! -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/weeweh/ip.git completed! +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JeremyYong128/ip.git... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JeremyYong128/ip.git to complete... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Chen1x/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Chen1x/ip.git (master)... +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/s-peiran/ip.git completed! -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/brandon-nam/ip.git... -Sep 26, 2023 2:06:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:51 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/brandon-nam/ip.git to complete... -Sep 26, 2023 2:06:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jx124/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jx124/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jx124/ip.git (master) completed! -Sep 26, 2023 2:06:40 PM reposense.report.ReportGenerator analyzeRepos -INFO: [64/478] Analyzing https://github.com/AryanG01/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AryanG01/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AryanG01/ip.git (master)... -Sep 26, 2023 2:06:40 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/applepiofmyeye/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/applepiofmyeye/ip.git (master)... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lawruixi/ip.git completed! -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/LHeng1/ip.git... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jylow/ip.git completed! -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/LHeng1/ip.git... +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LHeng1/ip.git to complete... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lawruixi/ip.git completed! +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Leb14/ip.git... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Leb14/ip.git to complete... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/JeremyYong128/ip.git completed! -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Chen1x/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/B-enguin/ip.git... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/B-enguin/ip.git to complete... -Sep 26, 2023 2:06:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AryanG01/ip.git (master)... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Chen1x/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Chen1x/ip.git (master) completed! +Sep 27, 2023 1:13:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [53/478] Analyzing https://github.com/yanghengtang/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yanghengtang/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yanghengtang/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ktzy0305/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LHeng1/ip.git completed! +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/brandon-nam/ip.git completed! -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ktzy0305/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ktzy0305/ip.git (master) completed! +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/s-kybound/ip.git... -Sep 26, 2023 2:06:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AryanG01/ip.git (master)... -Sep 26, 2023 2:06:41 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/s-kybound/ip.git to complete... -Sep 26, 2023 2:06:41 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AryanG01/ip.git (master) completed! -Sep 26, 2023 2:06:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [65/478] Analyzing https://github.com/kayabuttertoastt/ip.git (master)... -Sep 26, 2023 2:06:41 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kayabuttertoastt/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kayabuttertoastt/ip.git (master)... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Leb14/ip.git completed! -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [54/478] Analyzing https://github.com/p-xp/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wesho1107/ip.git... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/s-kybound/ip.git to complete... +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wesho1107/ip.git to complete... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LHeng1/ip.git completed! -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/B-enguin/ip.git completed! -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/p-xp/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/p-xp/ip.git (master)... +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Leb14/ip.git completed! +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yihfei/ip.git... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yihfei/ip.git to complete... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/B-enguin/ip.git completed! +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AaronJT1/ip.git... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:52 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AaronJT1/ip.git to complete... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/s-kybound/ip.git completed! -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wesho1107/ip.git completed! +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dlathyun/ip.git... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dlathyun/ip.git to complete... -Sep 26, 2023 2:06:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kayabuttertoastt/ip.git (master)... -Sep 26, 2023 2:06:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kayabuttertoastt/ip.git (master)... -Sep 26, 2023 2:06:42 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kayabuttertoastt/ip.git (master) completed! -Sep 26, 2023 2:06:42 PM reposense.report.ReportGenerator analyzeRepos -INFO: [66/478] Analyzing https://github.com/sheryew/ip.git (master)... -Sep 26, 2023 2:06:42 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/sheryew/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/sheryew/ip.git (master)... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wesho1107/ip.git completed! -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yihfei/ip.git completed! -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ricketytoc/ip.git... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ricketytoc/ip.git to complete... +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yanghengtang/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/p-xp/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/p-xp/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/p-xp/ip.git (master) completed! +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [55/478] Analyzing https://github.com/johnnythesnake12/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yanghengtang/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yanghengtang/ip.git (master) completed! +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/johnnythesnake12/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/johnnythesnake12/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [56/478] Analyzing https://github.com/oeggy03/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/oeggy03/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/oeggy03/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yihfei/ip.git completed! +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Angelyxx/ip.git... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Angelyxx/ip.git to complete... -Sep 26, 2023 2:06:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ricketytoc/ip.git to complete... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AaronJT1/ip.git completed! -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jingting1412/ip.git... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jingting1412/ip.git to complete... -Sep 26, 2023 2:06:43 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sheryew/ip.git (master)... -Sep 26, 2023 2:06:43 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sheryew/ip.git (master)... -Sep 26, 2023 2:06:43 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sheryew/ip.git (master) completed! -Sep 26, 2023 2:06:43 PM reposense.report.ReportGenerator analyzeRepos -INFO: [67/478] Analyzing https://github.com/jonasongg/ip.git (master)... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/dlathyun/ip.git completed! -Sep 26, 2023 2:06:43 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jonasongg/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:43 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jonasongg/ip.git (master)... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/johnnythesnake12/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SinhaVedant/ip.git... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SinhaVedant/ip.git to complete... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Angelyxx/ip.git completed! -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/johnnythesnake12/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ricketytoc/ip.git completed! +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/johnnythesnake12/ip.git (master) completed! +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [57/478] Analyzing https://github.com/matochichap/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/freddychenyouren2/ip.git... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/freddychenyouren2/ip.git to complete... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ricketytoc/ip.git completed! -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jordankanghm/ip.git... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/matochichap/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/matochichap/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/oeggy03/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/oeggy03/ip.git (master)... +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/oeggy03/ip.git (master) completed! +Sep 27, 2023 1:13:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [58/478] Analyzing https://github.com/ScarletBlanks/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ScarletBlanks/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ScarletBlanks/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jingting1412/ip.git completed! -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jordankanghm/ip.git... +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jordankanghm/ip.git to complete... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SinhaVedant/ip.git completed! +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/adhigop13/ip.git... -Sep 26, 2023 2:06:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/adhigop13/ip.git to complete... -Sep 26, 2023 2:06:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jonasongg/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/applepiofmyeye/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jonasongg/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jonasongg/ip.git (master) completed! -Sep 26, 2023 2:06:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [68/478] Analyzing https://github.com/yiwen101/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/applepiofmyeye/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/applepiofmyeye/ip.git (master) completed! -Sep 26, 2023 2:06:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yiwen101/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yiwen101/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SinhaVedant/ip.git completed! -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/matochichap/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ScarletBlanks/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ScarletBlanks/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ScarletBlanks/ip.git (master) completed! +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [59/478] Analyzing https://github.com/TiwKangXu/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/matochichap/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/matochichap/ip.git (master) completed! +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [60/478] Analyzing https://github.com/chiayunrong/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/TiwKangXu/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/TiwKangXu/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/chiayunrong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/chiayunrong/ip.git (master)... +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jordankanghm/ip.git completed! +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/waseemingly/ip.git... -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/waseemingly/ip.git to complete... -Sep 26, 2023 2:06:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [69/478] Analyzing https://github.com/tiongMax/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tiongMax/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tiongMax/ip.git (master)... -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/adhigop13/ip.git completed! -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/freddychenyouren2/ip.git completed! +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/raydenlim/ip.git... -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/raydenlim/ip.git to complete... -Sep 26, 2023 2:06:44 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jordankanghm/ip.git completed! -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:54 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jingyu987/ip.git... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jingyu987/ip.git to complete... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/freddychenyouren2/ip.git completed! -Sep 26, 2023 2:06:45 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yiwen101/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/raydenlim/ip.git to complete... +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/TiwKangXu/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chiayunrong/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chiayunrong/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chiayunrong/ip.git (master) completed! +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [61/478] Analyzing https://github.com/jx124/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/TiwKangXu/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/TiwKangXu/ip.git (master) completed! +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [62/478] Analyzing https://github.com/devanshubisht/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jx124/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jx124/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/devanshubisht/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/devanshubisht/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Angelyxx/ip.git completed! +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jingyu987/ip.git completed! +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/FerdiHS/ip.git... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/FerdiHS/ip.git to complete... -Sep 26, 2023 2:06:45 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yiwen101/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yiwen101/ip.git (master) completed! -Sep 26, 2023 2:06:45 PM reposense.report.ReportGenerator analyzeRepos -INFO: [70/478] Analyzing https://github.com/chuababyy/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tiongMax/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/chuababyy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/chuababyy/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tiongMax/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tiongMax/ip.git (master) completed! -Sep 26, 2023 2:06:45 PM reposense.report.ReportGenerator analyzeRepos -INFO: [71/478] Analyzing https://github.com/Clin-lyx/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/raydenlim/ip.git completed! -Sep 26, 2023 2:06:45 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Clin-lyx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Clin-lyx/ip.git (master)... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jrchoo/ip.git... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/FerdiHS/ip.git to complete... +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jrchoo/ip.git to complete... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jingyu987/ip.git completed! -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/raydenlim/ip.git completed! +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/RiyaMehta2211/ip.git... -Sep 26, 2023 2:06:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:55 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RiyaMehta2211/ip.git to complete... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jx124/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jx124/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jx124/ip.git (master) completed! +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/devanshubisht/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [63/478] Analyzing https://github.com/Clin-lyx/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/devanshubisht/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/devanshubisht/ip.git (master) completed! +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [64/478] Analyzing https://github.com/applepiofmyeye/ip.git (master)... +Sep 27, 2023 1:13:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Clin-lyx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Clin-lyx/ip.git (master)... +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/FerdiHS/ip.git completed! -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/leezhanpeng/ip.git... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/leezhanpeng/ip.git to complete... -Sep 26, 2023 2:06:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chuababyy/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chuababyy/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chuababyy/ip.git (master) completed! -Sep 26, 2023 2:06:46 PM reposense.report.ReportGenerator analyzeRepos -INFO: [72/478] Analyzing https://github.com/supermii2/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/supermii2/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/supermii2/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jrchoo/ip.git completed! -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/leezhanpeng/ip.git... +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/juzzztinsoong/ip.git... -Sep 26, 2023 2:06:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Clin-lyx/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/leezhanpeng/ip.git to complete... +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/juzzztinsoong/ip.git to complete... -Sep 26, 2023 2:06:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Clin-lyx/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Clin-lyx/ip.git (master) completed! -Sep 26, 2023 2:06:46 PM reposense.report.ReportGenerator analyzeRepos -INFO: [73/478] Analyzing https://github.com/remuslum/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/RiyaMehta2211/ip.git completed! -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/darrentfy/ip.git... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/darrentfy/ip.git to complete... -Sep 26, 2023 2:06:46 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/remuslum/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/remuslum/ip.git (master)... -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/applepiofmyeye/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/applepiofmyeye/ip.git (master)... +Sep 27, 2023 1:13:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Clin-lyx/ip.git (master)... +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/leezhanpeng/ip.git completed! -Sep 26, 2023 2:06:46 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/juzzztinsoong/ip.git completed! +Sep 27, 2023 1:13:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Clin-lyx/ip.git (master)... +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/redtailedfox/ip.git... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/redtailedfox/ip.git to complete... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/darrentfy/ip.git completed! -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/redtailedfox/ip.git completed! -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Clin-lyx/ip.git (master) completed! +Sep 27, 2023 1:13:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [65/478] Analyzing https://github.com/AryanG01/ip.git (master)... +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Fallman2/ip.git... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/juzzztinsoong/ip.git completed! -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:56 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/redtailedfox/ip.git to complete... +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Fallman2/ip.git to complete... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AryanG01/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AryanG01/ip.git (master)... +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/darrentfy/ip.git completed! +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Heran9/ip.git... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Heran9/ip.git to complete... +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/redtailedfox/ip.git completed! +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/VN-Hao/ip.git... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/VN-Hao/ip.git to complete... -Sep 26, 2023 2:06:47 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Heran9/ip.git to complete... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/waseemingly/ip.git completed! -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Fallman2/ip.git completed! +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jingjie88/ip.git... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/waseemingly/ip.git completed! +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jingjie88/ip.git to complete... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/remuslum/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/supermii2/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/remuslum/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/remuslum/ip.git (master) completed! -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [74/478] Analyzing https://github.com/glenngnng/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/glenngnng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/glenngnng/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/supermii2/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/supermii2/ip.git (master) completed! -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [75/478] Analyzing https://github.com/nicolengk/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nicolengk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nicolengk/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Heran9/ip.git completed! -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/H1410101/ip.git... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Heran9/ip.git completed! +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/H1410101/ip.git to complete... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/glenngnng/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/glenngnng/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jingjie88/ip.git completed! -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/glenngnng/ip.git (master) completed! -Sep 26, 2023 2:06:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [76/478] Analyzing https://github.com/newway1814/ip.git (master)... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kimshitong/ip.git... -Sep 26, 2023 2:06:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:57 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kimshitong/ip.git to complete... -Sep 26, 2023 2:06:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicolengk/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nicolengk/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/newway1814/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/newway1814/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nicolengk/ip.git (master) completed! -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Fallman2/ip.git completed! -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [77/478] Analyzing https://github.com/zsh-eng/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ivanleekk/ip.git... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ivanleekk/ip.git to complete... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AryanG01/ip.git (master)... +Sep 27, 2023 1:13:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AryanG01/ip.git (master)... +Sep 27, 2023 1:13:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AryanG01/ip.git (master) completed! +Sep 27, 2023 1:13:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [66/478] Analyzing https://github.com/kayabuttertoastt/ip.git (master)... +Sep 27, 2023 1:13:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kayabuttertoastt/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kayabuttertoastt/ip.git (master)... +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/VN-Hao/ip.git completed! -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zsh-eng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zsh-eng/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/lamchenghou/ip.git... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/lamchenghou/ip.git to complete... -Sep 26, 2023 2:06:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/newway1814/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/newway1814/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/newway1814/ip.git (master) completed! -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [78/478] Analyzing https://github.com/LamJiuFong/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LamJiuFong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LamJiuFong/ip.git (master)... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jingjie88/ip.git completed! +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ivanleekk/ip.git... +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kimshitong/ip.git completed! -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/lamchenghou/ip.git... +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ivanleekk/ip.git to complete... +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tayruxin/ip.git... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ivanleekk/ip.git completed! -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/lamchenghou/ip.git to complete... +Sep 27, 2023 1:13:58 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tayruxin/ip.git to complete... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kayabuttertoastt/ip.git (master)... +Sep 27, 2023 1:13:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kayabuttertoastt/ip.git (master)... +Sep 27, 2023 1:13:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kayabuttertoastt/ip.git (master) completed! +Sep 27, 2023 1:13:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [67/478] Analyzing https://github.com/sheryew/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/H1410101/ip.git completed! +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/raynertjx/ip.git... -Sep 26, 2023 2:06:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/sheryew/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/sheryew/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/raynertjx/ip.git to complete... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lamchenghou/ip.git completed! -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tayruxin/ip.git completed! +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ivanleekk/ip.git completed! +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zhengyup/ip.git... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/zhengyup/ip.git to complete... -Sep 26, 2023 2:06:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zsh-eng/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zsh-eng/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zsh-eng/ip.git (master) completed! -Sep 26, 2023 2:06:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [79/478] Analyzing https://github.com/mingyuanc/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mingyuanc/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mingyuanc/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/H1410101/ip.git completed! -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/larrywang0701/ip.git... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lamchenghou/ip.git completed! +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/zhengyup/ip.git to complete... +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/larrywang0701/ip.git to complete... -Sep 26, 2023 2:06:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LamJiuFong/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LamJiuFong/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LamJiuFong/ip.git (master) completed! -Sep 26, 2023 2:06:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [80/478] Analyzing https://github.com/kanna-1/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kanna-1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kanna-1/ip.git (master)... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tayruxin/ip.git completed! -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Carlintyj/ip.git... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Carlintyj/ip.git to complete... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sheryew/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sheryew/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sheryew/ip.git (master) completed! +Sep 27, 2023 1:13:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/applepiofmyeye/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [68/478] Analyzing https://github.com/jonasongg/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jonasongg/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jonasongg/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/applepiofmyeye/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/applepiofmyeye/ip.git (master) completed! +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/raynertjx/ip.git completed! -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wxwern/ip.git... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wxwern/ip.git to complete... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/zhengyup/ip.git completed! -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nubnubyas/ip.git... -Sep 26, 2023 2:06:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nubnubyas/ip.git to complete... -Sep 26, 2023 2:06:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mingyuanc/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mingyuanc/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mingyuanc/ip.git (master) completed! -Sep 26, 2023 2:06:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [81/478] Analyzing https://github.com/GlendaChong/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/GlendaChong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/GlendaChong/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Carlintyj/ip.git completed! +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/larrywang0701/ip.git completed! -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aslam341/ip.git... -Sep 26, 2023 2:06:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kanna-1/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [69/478] Analyzing https://github.com/yiwen101/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/aslam341/ip.git to complete... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Carlintyj/ip.git completed! -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LWZ19/ip.git... -Sep 26, 2023 2:06:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kanna-1/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:13:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yiwen101/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:13:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yiwen101/ip.git (master)... +Sep 27, 2023 1:13:59 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LWZ19/ip.git to complete... -Sep 26, 2023 2:06:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kanna-1/ip.git (master) completed! -Sep 26, 2023 2:06:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [82/478] Analyzing https://github.com/starrylight99/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nubnubyas/ip.git completed! -Sep 26, 2023 2:06:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/starrylight99/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/starrylight99/ip.git (master)... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/timleow/ip.git... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jonasongg/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jonasongg/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jonasongg/ip.git (master) completed! +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [70/478] Analyzing https://github.com/tiongMax/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wxwern/ip.git completed! -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tiongMax/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tiongMax/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/timleow/ip.git... +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/timleow/ip.git to complete... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nubnubyas/ip.git completed! +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/rayshawntan/ip.git... -Sep 26, 2023 2:06:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/rayshawntan/ip.git to complete... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/aslam341/ip.git completed! -Sep 26, 2023 2:06:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/GlendaChong/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aexolate/ip.git... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/aexolate/ip.git to complete... -Sep 26, 2023 2:06:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/starrylight99/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/starrylight99/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/starrylight99/ip.git (master) completed! -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [83/478] Analyzing https://github.com/AustinHuang1203/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/GlendaChong/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/GlendaChong/ip.git (master) completed! -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [84/478] Analyzing https://github.com/seewhyjay/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AustinHuang1203/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AustinHuang1203/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LWZ19/ip.git completed! -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Sheeepen/ip.git... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Sheeepen/ip.git to complete... -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/seewhyjay/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/seewhyjay/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rayshawntan/ip.git completed! -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yiwen101/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yiwen101/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yiwen101/ip.git (master) completed! +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [71/478] Analyzing https://github.com/chuababyy/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/chuababyy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/chuababyy/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tiongMax/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tiongMax/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tiongMax/ip.git (master) completed! +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [72/478] Analyzing https://github.com/supermii2/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/timleow/ip.git completed! +Sep 27, 2023 1:14:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/supermii2/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/supermii2/ip.git (master)... +Sep 27, 2023 1:14:00 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shuyangk/ip.git... -Sep 26, 2023 2:06:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shuyangk/ip.git to complete... -Sep 26, 2023 2:06:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AustinHuang1203/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AustinHuang1203/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AustinHuang1203/ip.git (master) completed! -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [85/478] Analyzing https://github.com/zacwong2151/ip.git (master)... -Sep 26, 2023 2:06:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zacwong2151/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zacwong2151/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/seewhyjay/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/seewhyjay/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/seewhyjay/ip.git (master) completed! -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [86/478] Analyzing https://github.com/limzhenwy/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/aexolate/ip.git completed! -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ncmathan/ip.git... -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/limzhenwy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/limzhenwy/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ncmathan/ip.git to complete... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Sheeepen/ip.git completed! -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rayshawntan/ip.git completed! +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/iyioon/ip.git... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shuyangk/ip.git completed! -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/iyioon/ip.git to complete... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Sheeepen/ip.git completed! +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kiwibang/ip.git... -Sep 26, 2023 2:06:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zacwong2151/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chuababyy/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kiwibang/ip.git to complete... -Sep 26, 2023 2:06:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zacwong2151/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zacwong2151/ip.git (master) completed! -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [87/478] Analyzing https://github.com/xCOLOURx/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/timleow/ip.git completed! -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chuababyy/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chuababyy/ip.git (master) completed! +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [73/478] Analyzing https://github.com/remuslum/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/remuslum/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/remuslum/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/supermii2/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shuyangk/ip.git completed! +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mingyu-wan/ip.git... -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/xCOLOURx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/xCOLOURx/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/supermii2/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/supermii2/ip.git (master) completed! +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mingyu-wan/ip.git to complete... -Sep 26, 2023 2:06:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/limzhenwy/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/limzhenwy/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/limzhenwy/ip.git (master) completed! -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [88/478] Analyzing https://github.com/teoks0199/ip.git (master)... -Sep 26, 2023 2:06:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/teoks0199/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/teoks0199/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/teoks0199/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/teoks0199/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [74/478] Analyzing https://github.com/nicolengk/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kiwibang/ip.git completed! +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/iyioon/ip.git completed! -Sep 26, 2023 2:06:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/teoks0199/ip.git (master) completed! -Sep 26, 2023 2:06:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [89/478] Analyzing https://github.com/Zjinnnn/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/xCOLOURx/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LuoZYi/ip.git... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LuoZYi/ip.git to complete... -Sep 26, 2023 2:06:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Zjinnnn/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Zjinnnn/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kiwibang/ip.git completed! -Sep 26, 2023 2:06:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/xCOLOURx/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/asdfghjkxd/ip.git... -Sep 26, 2023 2:06:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/xCOLOURx/ip.git (master) completed! -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/asdfghjkxd/ip.git to complete... -Sep 26, 2023 2:06:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [90/478] Analyzing https://github.com/awhb/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/awhb/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/awhb/ip.git (master)... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nicolengk/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nicolengk/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/remuslum/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/remuslum/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/remuslum/ip.git (master) completed! +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [75/478] Analyzing https://github.com/newway1814/ip.git (master)... +Sep 27, 2023 1:14:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/newway1814/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/newway1814/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ncmathan/ip.git completed! -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sushiyade/ip.git... -Sep 26, 2023 2:06:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sushiyade/ip.git to complete... -Sep 26, 2023 2:06:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicolengk/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LuoZYi/ip.git completed! -Sep 26, 2023 2:06:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/awhb/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Nid21cs/ip.git... -Sep 26, 2023 2:06:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Zjinnnn/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nicolengk/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nicolengk/ip.git (master) completed! +Sep 27, 2023 1:14:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [76/478] Analyzing https://github.com/glenngnng/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Nid21cs/ip.git to complete... -Sep 26, 2023 2:06:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/awhb/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/awhb/ip.git (master) completed! -Sep 26, 2023 2:06:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [91/478] Analyzing https://github.com/ruth-lim/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Zjinnnn/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Zjinnnn/ip.git (master) completed! -Sep 26, 2023 2:06:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [92/478] Analyzing https://github.com/Mahidharah/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruth-lim/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruth-lim/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Mahidharah/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Mahidharah/ip.git (master)... -Sep 26, 2023 2:06:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/glenngnng/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/glenngnng/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/asdfghjkxd/ip.git completed! -Sep 26, 2023 2:06:55 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/newway1814/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/McNaBry/ip.git... -Sep 26, 2023 2:06:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:02 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/McNaBry/ip.git to complete... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mingyu-wan/ip.git completed! -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/newway1814/ip.git (master)... +Sep 27, 2023 1:14:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/newway1814/ip.git (master) completed! +Sep 27, 2023 1:14:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [77/478] Analyzing https://github.com/kanna-1/ip.git (master)... +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Nid21cs/ip.git completed! +Sep 27, 2023 1:14:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kanna-1/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kanna-1/ip.git (master)... +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/miljyy/ip.git... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/miljyy/ip.git to complete... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Nid21cs/ip.git completed! -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/glenngnng/ip.git (master)... +Sep 27, 2023 1:14:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/glenngnng/ip.git (master)... +Sep 27, 2023 1:14:03 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/glenngnng/ip.git (master) completed! +Sep 27, 2023 1:14:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [78/478] Analyzing https://github.com/zsh-eng/ip.git (master)... +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mingyu-wan/ip.git completed! +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ncduy0303/ip.git... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ncduy0303/ip.git to complete... -Sep 26, 2023 2:06:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Mahidharah/ip.git (master)... -Sep 26, 2023 2:06:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Mahidharah/ip.git (master)... -Sep 26, 2023 2:06:56 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Mahidharah/ip.git (master) completed! -Sep 26, 2023 2:06:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [93/478] Analyzing https://github.com/pangyyen/ip.git (master)... -Sep 26, 2023 2:06:56 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/pangyyen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:56 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/pangyyen/ip.git (master)... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zsh-eng/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zsh-eng/ip.git (master)... +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/McNaBry/ip.git completed! -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/eyelessrhyme7/ip.git... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/eyelessrhyme7/ip.git to complete... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/miljyy/ip.git completed! -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ruishanteo/ip.git... -Sep 26, 2023 2:06:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ruishanteo/ip.git to complete... -Sep 26, 2023 2:06:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ruth-lim/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ruth-lim/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ruth-lim/ip.git (master) completed! -Sep 26, 2023 2:06:57 PM reposense.report.ReportGenerator analyzeRepos -INFO: [94/478] Analyzing https://github.com/jason-raiin/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sushiyade/ip.git completed! -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ncduy0303/ip.git completed! -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/m1oojv/ip.git... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Nixx162/ip.git... -Sep 26, 2023 2:06:57 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jason-raiin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jason-raiin/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:03 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/m1oojv/ip.git to complete... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Nixx162/ip.git to complete... -Sep 26, 2023 2:06:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/pangyyen/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/pangyyen/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/pangyyen/ip.git (master) completed! -Sep 26, 2023 2:06:57 PM reposense.report.ReportGenerator analyzeRepos -INFO: [95/478] Analyzing https://github.com/qz1004/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kanna-1/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kanna-1/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kanna-1/ip.git (master) completed! +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [79/478] Analyzing https://github.com/mingyuanc/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mingyuanc/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mingyuanc/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ncduy0303/ip.git completed! +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Nixx162/ip.git... +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/eyelessrhyme7/ip.git completed! -Sep 26, 2023 2:06:57 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/qz1004/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/qz1004/ip.git (master)... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Nixx162/ip.git to complete... +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Gabriel4357/ip.git... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Gabriel4357/ip.git to complete... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ruishanteo/ip.git completed! -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mfjkri/ip.git... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mfjkri/ip.git to complete... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Nixx162/ip.git completed! -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/m1oojv/ip.git completed! -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/junhonglow/ip.git... -Sep 26, 2023 2:06:57 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/RoeReRe/ip.git... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/junhonglow/ip.git to complete... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zsh-eng/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zsh-eng/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zsh-eng/ip.git (master) completed! +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [80/478] Analyzing https://github.com/LamJiuFong/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LamJiuFong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LamJiuFong/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mingyuanc/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mingyuanc/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mingyuanc/ip.git (master) completed! +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [81/478] Analyzing https://github.com/GlendaChong/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Nixx162/ip.git completed! +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/RoeReRe/ip.git... +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RoeReRe/ip.git to complete... -Sep 26, 2023 2:06:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jason-raiin/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jason-raiin/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jason-raiin/ip.git (master) completed! -Sep 26, 2023 2:06:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [96/478] Analyzing https://github.com/ravern/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ravern/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ravern/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Gabriel4357/ip.git completed! -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/GlendaChong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/GlendaChong/ip.git (master)... +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Badatprogrammiing/ip.git... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:04 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Badatprogrammiing/ip.git to complete... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/junhonglow/ip.git completed! +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/mfjkri/ip.git completed! -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nknguyenhc/ip.git... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nknguyenhc/ip.git to complete... -Sep 26, 2023 2:06:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/qz1004/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/qz1004/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/qz1004/ip.git (master) completed! -Sep 26, 2023 2:06:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [97/478] Analyzing https://github.com/techjay-c/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/RoeReRe/ip.git completed! -Sep 26, 2023 2:06:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/techjay-c/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/techjay-c/ip.git (master)... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/winson8222/ip.git... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/winson8222/ip.git to complete... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/junhonglow/ip.git completed! -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/wujy28/ip.git... -Sep 26, 2023 2:06:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wujy28/ip.git to complete... -Sep 26, 2023 2:06:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ravern/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Badatprogrammiing/ip.git completed! -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/SimWPEric/ip.git... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/SimWPEric/ip.git to complete... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nknguyenhc/ip.git completed! -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nknguyenhc/ip.git to complete... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LamJiuFong/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LamJiuFong/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LamJiuFong/ip.git (master) completed! +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [82/478] Analyzing https://github.com/starrylight99/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/starrylight99/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/starrylight99/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/GlendaChong/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Badatprogrammiing/ip.git completed! +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/wujy28/ip.git... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wujy28/ip.git to complete... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/GlendaChong/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/GlendaChong/ip.git (master) completed! +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [83/478] Analyzing https://github.com/AustinHuang1203/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/RoeReRe/ip.git completed! +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/SimWPEric/ip.git... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/SimWPEric/ip.git to complete... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nknguyenhc/ip.git completed! +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/HugeNoob/ip.git... -Sep 26, 2023 2:06:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ravern/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ravern/ip.git (master) completed! -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/HugeNoob/ip.git to complete... -Sep 26, 2023 2:06:59 PM reposense.report.ReportGenerator analyzeRepos -INFO: [98/478] Analyzing https://github.com/bobscodedump/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/winson8222/ip.git completed! -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AustinHuang1203/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AustinHuang1203/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lerxuann/ip.git... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/HugeNoob/ip.git to complete... +Sep 27, 2023 1:14:05 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lerxuann/ip.git to complete... -Sep 26, 2023 2:06:59 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/bobscodedump/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/bobscodedump/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/techjay-c/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/techjay-c/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/techjay-c/ip.git (master) completed! -Sep 26, 2023 2:06:59 PM reposense.report.ReportGenerator analyzeRepos -INFO: [99/478] Analyzing https://github.com/LuahJunYang/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LuahJunYang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:06:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LuahJunYang/ip.git (master)... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wujy28/ip.git completed! -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Weiennn/ip.git... -Sep 26, 2023 2:06:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Weiennn/ip.git to complete... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/starrylight99/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/starrylight99/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/starrylight99/ip.git (master) completed! +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [84/478] Analyzing https://github.com/seewhyjay/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/seewhyjay/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/seewhyjay/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AustinHuang1203/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AustinHuang1203/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AustinHuang1203/ip.git (master) completed! +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [85/478] Analyzing https://github.com/ruth-lim/ip.git (master)... +Sep 27, 2023 1:14:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruth-lim/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruth-lim/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/seewhyjay/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/HugeNoob/ip.git completed! +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/SimWPEric/ip.git completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Weiennn/ip.git... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/maj0-0/ip.git... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/HugeNoob/ip.git completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wujy28/ip.git completed! +Sep 27, 2023 1:14:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/seewhyjay/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/seewhyjay/ip.git (master) completed! +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Weiennn/ip.git to complete... +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [86/478] Analyzing https://github.com/limzhenwy/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/maj0-0/ip.git to complete... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/qyaner/ip.git... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/qyaner/ip.git to complete... -Sep 26, 2023 2:07:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LuahJunYang/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LuahJunYang/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LuahJunYang/ip.git (master) completed! -Sep 26, 2023 2:07:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [100/478] Analyzing https://github.com/nixonwidjaja/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/limzhenwy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/limzhenwy/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lerxuann/ip.git completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ruiyangzh/ip.git... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ruiyangzh/ip.git to complete... -Sep 26, 2023 2:07:00 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nixonwidjaja/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nixonwidjaja/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Weiennn/ip.git completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/limzhenwy/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/limzhenwy/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/limzhenwy/ip.git (master) completed! +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [87/478] Analyzing https://github.com/xCOLOURx/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/xCOLOURx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/xCOLOURx/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ruth-lim/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/maj0-0/ip.git completed! +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Bombbird2001/ip.git... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ruth-lim/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ruth-lim/ip.git (master) completed! +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [88/478] Analyzing https://github.com/zacwong2151/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Bombbird2001/ip.git to complete... -Sep 26, 2023 2:07:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/bobscodedump/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zacwong2151/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zacwong2151/ip.git (master)... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/qyaner/ip.git completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/maj0-0/ip.git completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Weiennn/ip.git completed! +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ruiyangzh/ip.git completed! +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/hyc17003/ip.git... -Sep 26, 2023 2:07:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/bobscodedump/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/bobscodedump/ip.git (master) completed! -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/adammangzijun/ip.git... -Sep 26, 2023 2:07:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [101/478] Analyzing https://github.com/ryanozx/ip.git (master)... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/adammangzijun/ip.git to complete... -Sep 26, 2023 2:07:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/hyc17003/ip.git to complete... -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ryanozx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ryanozx/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ruiyangzh/ip.git completed! -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/andytoh1/ip.git... -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/andytoh1/ip.git to complete... -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/adammangzijun/ip.git to complete... +Sep 27, 2023 1:14:06 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/hyc17003/ip.git to complete... +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/xCOLOURx/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/xCOLOURx/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/xCOLOURx/ip.git (master) completed! +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zacwong2151/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [89/478] Analyzing https://github.com/Zjinnnn/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zacwong2151/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zacwong2151/ip.git (master) completed! +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [90/478] Analyzing https://github.com/teoks0199/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Zjinnnn/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Zjinnnn/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/teoks0199/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/teoks0199/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Bombbird2001/ip.git completed! -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Originalidk/ip.git... -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Originalidk/ip.git to complete... -Sep 26, 2023 2:07:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nixonwidjaja/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/andytoh1/ip.git completed! +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/hyc17003/ip.git completed! +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/adammangzijun/ip.git completed! -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/quzhetao01/ip.git... -Sep 26, 2023 2:07:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/quzhetao01/ip.git to complete... -Sep 26, 2023 2:07:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nixonwidjaja/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nixonwidjaja/ip.git (master) completed! -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [102/478] Analyzing https://github.com/HEEaZ/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/HEEaZ/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/HEEaZ/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ryanozx/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ryanozx/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ryanozx/ip.git (master) completed! -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [103/478] Analyzing https://github.com/dom-buri/ip.git (master)... -Sep 26, 2023 2:07:01 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dom-buri/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dom-buri/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/andytoh1/ip.git completed! -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/InfiBeyond/ip.git... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/InfiBeyond/ip.git to complete... -Sep 26, 2023 2:07:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/HEEaZ/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Originalidk/ip.git completed! -Sep 26, 2023 2:07:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/HEEaZ/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Bearypop/ip.git... -Sep 26, 2023 2:07:02 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/HEEaZ/ip.git (master) completed! -Sep 26, 2023 2:07:02 PM reposense.report.ReportGenerator analyzeRepos -INFO: [104/478] Analyzing https://github.com/tiongjjyi/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/InfiBeyond/ip.git to complete... +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/quzhetao01/ip.git to complete... +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Bearypop/ip.git to complete... -Sep 26, 2023 2:07:02 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tiongjjyi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tiongjjyi/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/quzhetao01/ip.git completed! -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/teoks0199/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/teoks0199/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/teoks0199/ip.git (master) completed! +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [91/478] Analyzing https://github.com/awhb/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Zjinnnn/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Zjinnnn/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Zjinnnn/ip.git (master) completed! +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/awhb/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/awhb/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [92/478] Analyzing https://github.com/qz1004/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/qz1004/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/qz1004/ip.git (master)... +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Originalidk/ip.git completed! +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sp4ce-cowboy/ip.git... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:07 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sp4ce-cowboy/ip.git to complete... -Sep 26, 2023 2:07:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dom-buri/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dom-buri/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dom-buri/ip.git (master) completed! -Sep 26, 2023 2:07:02 PM reposense.report.ReportGenerator analyzeRepos -INFO: [105/478] Analyzing https://github.com/Vanessamae23/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/hyc17003/ip.git completed! -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Bearypop/ip.git completed! +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/quzhetao01/ip.git completed! +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JasonLCY-Temp/ip.git... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/JasonLCY-Temp/ip.git to complete... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/InfiBeyond/ip.git completed! -Sep 26, 2023 2:07:02 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Vanessamae23/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Vanessamae23/ip.git (master)... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wjayee/ip.git... -Sep 26, 2023 2:07:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wjayee/ip.git to complete... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Bearypop/ip.git completed! -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/InfiBeyond/ip.git completed! +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/JasonLCY-Temp/ip.git to complete... +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/vivienherq/ip.git... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wjayee/ip.git to complete... +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/vivienherq/ip.git to complete... -Sep 26, 2023 2:07:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tiongjjyi/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tiongjjyi/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tiongjjyi/ip.git (master) completed! -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator analyzeRepos -INFO: [106/478] Analyzing https://github.com/fuyiqiao/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/fuyiqiao/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/fuyiqiao/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/awhb/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/awhb/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/awhb/ip.git (master) completed! +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [93/478] Analyzing https://github.com/pangyyen/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/pangyyen/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/pangyyen/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/qz1004/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/qz1004/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/qz1004/ip.git (master) completed! +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [94/478] Analyzing https://github.com/Mahidharah/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sp4ce-cowboy/ip.git completed! -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Mahidharah/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Mahidharah/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jamesebond/ip.git... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jamesebond/ip.git to complete... -Sep 26, 2023 2:07:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Vanessamae23/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/fuyiqiao/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Vanessamae23/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Vanessamae23/ip.git (master) completed! -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator analyzeRepos -INFO: [107/478] Analyzing https://github.com/tanshiyu1999/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/pangyyen/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wjayee/ip.git completed! +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/vivienherq/ip.git completed! +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/JasonLCY-Temp/ip.git completed! -Sep 26, 2023 2:07:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/fuyiqiao/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jonyeokj/ip.git... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jonyeokj/ip.git to complete... -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/fuyiqiao/ip.git (master) completed! -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanshiyu1999/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanshiyu1999/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator analyzeRepos -INFO: [108/478] Analyzing https://github.com/spatuly/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/spatuly/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/spatuly/ip.git (master)... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/vivienherq/ip.git completed! -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/pangyyen/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/pangyyen/ip.git (master) completed! +Sep 27, 2023 1:14:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [95/478] Analyzing https://github.com/jason-raiin/ip.git (master)... +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/victorlaiyeeteng/ip.git... -Sep 26, 2023 2:07:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/victorlaiyeeteng/ip.git to complete... -Sep 26, 2023 2:07:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanshiyu1999/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanshiyu1999/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanshiyu1999/ip.git (master) completed! -Sep 26, 2023 2:07:04 PM reposense.report.ReportGenerator analyzeRepos -INFO: [109/478] Analyzing https://github.com/Kb-Tay/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jamesebond/ip.git completed! -Sep 26, 2023 2:07:04 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Kb-Tay/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Kb-Tay/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lyuanww/ip.git... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lyuanww/ip.git to complete... -Sep 26, 2023 2:07:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/spatuly/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/spatuly/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/spatuly/ip.git (master) completed! -Sep 26, 2023 2:07:04 PM reposense.report.ReportGenerator analyzeRepos -INFO: [110/478] Analyzing https://github.com/beatricecst/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jonyeokj/ip.git completed! -Sep 26, 2023 2:07:04 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/beatricecst/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/beatricecst/ip.git (master)... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:08 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/victorlaiyeeteng/ip.git to complete... +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jason-raiin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jason-raiin/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Mahidharah/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Mahidharah/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Mahidharah/ip.git (master) completed! +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [96/478] Analyzing https://github.com/ravern/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jamesebond/ip.git completed! +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ravern/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ravern/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yongning0310/ip.git... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yongning0310/ip.git to complete... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/victorlaiyeeteng/ip.git completed! -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jonyeokj/ip.git completed! +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Cloud7050/ip.git... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/victorlaiyeeteng/ip.git completed! +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Cloud7050/ip.git to complete... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wjayee/ip.git completed! -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LoMaply/ip.git... -Sep 26, 2023 2:07:04 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LoMaply/ip.git to complete... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kb-Tay/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kb-Tay/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kb-Tay/ip.git (master) completed! -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [111/478] Analyzing https://github.com/tanveersingh10/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/beatricecst/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lyuanww/ip.git completed! -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tanveersingh10/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tanveersingh10/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tllshan/ip.git... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/beatricecst/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/beatricecst/ip.git (master) completed! -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tllshan/ip.git to complete... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [112/478] Analyzing https://github.com/thienmy0/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/thienmy0/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/thienmy0/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jason-raiin/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yongning0310/ip.git completed! -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jason-raiin/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jason-raiin/ip.git (master) completed! +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [97/478] Analyzing https://github.com/techjay-c/ip.git (master)... +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Gavino3o/ip.git... -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Gavino3o/ip.git to complete... -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Cloud7050/ip.git completed! -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/techjay-c/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/techjay-c/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LoMaply/ip.git completed! +Sep 27, 2023 1:14:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ravern/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/HollaG/ip.git... -Sep 26, 2023 2:07:05 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/HollaG/ip.git to complete... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/thienmy0/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tanveersingh10/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/thienmy0/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/thienmy0/ip.git (master) completed! -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [113/478] Analyzing https://github.com/s0ngyang/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tanveersingh10/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/s0ngyang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/s0ngyang/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tanveersingh10/ip.git (master) completed! -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [114/478] Analyzing https://github.com/ldinghan/ip.git (master)... -Sep 26, 2023 2:07:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ldinghan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ldinghan/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tllshan/ip.git completed! -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ravern/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ravern/ip.git (master) completed! +Sep 27, 2023 1:14:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [98/478] Analyzing https://github.com/bobscodedump/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Cloud7050/ip.git completed! +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cheeggered/ip.git... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cheeggered/ip.git to complete... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LoMaply/ip.git completed! -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/bobscodedump/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/bobscodedump/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tllshan/ip.git completed! +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xenosf/ip.git... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xenosf/ip.git to complete... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Gavino3o/ip.git completed! -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TehOPanas/ip.git... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TehOPanas/ip.git to complete... -Sep 26, 2023 2:07:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/s0ngyang/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/s0ngyang/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/s0ngyang/ip.git (master) completed! -Sep 26, 2023 2:07:06 PM reposense.report.ReportGenerator analyzeRepos -INFO: [115/478] Analyzing https://github.com/feifeiraindrops/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/feifeiraindrops/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/feifeiraindrops/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/HollaG/ip.git completed! -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/techjay-c/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/neyapraveen/ip.git... -Sep 26, 2023 2:07:06 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/neyapraveen/ip.git to complete... -Sep 26, 2023 2:07:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ldinghan/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ldinghan/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ldinghan/ip.git (master) completed! -Sep 26, 2023 2:07:06 PM reposense.report.ReportGenerator analyzeRepos -INFO: [116/478] Analyzing https://github.com/ryanongwx/ip.git (master)... -Sep 26, 2023 2:07:06 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ryanongwx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ryanongwx/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/TehOPanas/ip.git completed! -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/techjay-c/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/techjay-c/ip.git (master) completed! +Sep 27, 2023 1:14:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [99/478] Analyzing https://github.com/ryanozx/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ryanozx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ryanozx/ip.git (master)... +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cheeggered/ip.git completed! +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/richiehx/ip.git... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/richiehx/ip.git to complete... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cheeggered/ip.git completed! -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/xenosf/ip.git completed! +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlyssaPng/ip.git... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:10 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlyssaPng/ip.git to complete... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/xenosf/ip.git completed! -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/TehOPanas/ip.git completed! +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/leezhengjing/ip.git... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/leezhengjing/ip.git to complete... -Sep 26, 2023 2:07:07 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ryanongwx/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/neyapraveen/ip.git completed! -Sep 26, 2023 2:07:07 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ryanongwx/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ryanongwx/ip.git (master) completed! -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator analyzeRepos -INFO: [117/478] Analyzing https://github.com/kwangthiag/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seantehds/ip.git... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/seantehds/ip.git to complete... -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kwangthiag/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:07 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kwangthiag/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/feifeiraindrops/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/feifeiraindrops/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/feifeiraindrops/ip.git (master) completed! -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator analyzeRepos -INFO: [118/478] Analyzing https://github.com/elhy1999/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/elhy1999/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:07 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/elhy1999/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kwangthiag/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kwangthiag/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kwangthiag/ip.git (master) completed! -Sep 26, 2023 2:07:07 PM reposense.report.ReportGenerator analyzeRepos -INFO: [119/478] Analyzing https://github.com/AlainS87/ip.git (master)... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/bobscodedump/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/bobscodedump/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/bobscodedump/ip.git (master) completed! +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [100/478] Analyzing https://github.com/LuahJunYang/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ryanozx/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LuahJunYang/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LuahJunYang/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/richiehx/ip.git completed! -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lihongguang00/ip.git... -Sep 26, 2023 2:07:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/lihongguang00/ip.git to complete... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AlyssaPng/ip.git completed! -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/lihongguang00/ip.git to complete... +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Singa-pirate/ip.git... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ryanozx/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Singa-pirate/ip.git to complete... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ryanozx/ip.git (master) completed! +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [101/478] Analyzing https://github.com/nixonwidjaja/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/leezhengjing/ip.git completed! -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/songfangyl/ip.git... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/songfangyl/ip.git to complete... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nixonwidjaja/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nixonwidjaja/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LuahJunYang/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LuahJunYang/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LuahJunYang/ip.git (master) completed! +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/seantehds/ip.git completed! -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [102/478] Analyzing https://github.com/HEEaZ/ip.git (master)... +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/vansh284/ip.git... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/vansh284/ip.git to complete... -Sep 26, 2023 2:07:08 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AlainS87/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AlainS87/ip.git (master)... -Sep 26, 2023 2:07:08 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/elhy1999/ip.git (master)... -Sep 26, 2023 2:07:08 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/elhy1999/ip.git (master)... -Sep 26, 2023 2:07:08 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/elhy1999/ip.git (master) completed! -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/HEEaZ/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/HEEaZ/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Singa-pirate/ip.git completed! -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/YeoBohShin/ip.git... -Sep 26, 2023 2:07:08 PM reposense.report.ReportGenerator analyzeRepos -INFO: [120/478] Analyzing https://github.com/songgthu/ip.git (master)... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/songfangyl/ip.git completed! -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/YeoBohShin/ip.git to complete... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/songfangyl/ip.git completed! +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shuenj/ip.git... -Sep 26, 2023 2:07:08 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shuenj/ip.git to complete... -Sep 26, 2023 2:07:09 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/songgthu/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:09 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/songgthu/ip.git (master)... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/vansh284/ip.git completed! -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lihongguang00/ip.git completed! +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lunaroddity/ip.git... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lunaroddity/ip.git to complete... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lihongguang00/ip.git completed! -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/vansh284/ip.git completed! +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/andrechuakj/ip.git... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/andrechuakj/ip.git to complete... -Sep 26, 2023 2:07:09 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/songgthu/ip.git (master)... -Sep 26, 2023 2:07:09 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/songgthu/ip.git (master)... -Sep 26, 2023 2:07:09 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/songgthu/ip.git (master) completed! -Sep 26, 2023 2:07:09 PM reposense.report.ReportGenerator analyzeRepos -INFO: [121/478] Analyzing https://github.com/GohTengFong/ip.git (master)... -Sep 26, 2023 2:07:09 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/GohTengFong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:09 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/GohTengFong/ip.git (master)... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lunaroddity/ip.git completed! -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/HEEaZ/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/YeoBohShin/ip.git completed! +Sep 27, 2023 1:14:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/HEEaZ/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WeeMingQing/ip.git... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/shuenj/ip.git completed! -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/HEEaZ/ip.git (master) completed! +Sep 27, 2023 1:14:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [103/478] Analyzing https://github.com/dom-buri/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WeeMingQing/ip.git to complete... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dom-buri/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dom-buri/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nixonwidjaja/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/shuenj/ip.git completed! +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aliciamichellew/ip.git... -Sep 26, 2023 2:07:09 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:12 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/aliciamichellew/ip.git to complete... -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/andrechuakj/ip.git completed! -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nixonwidjaja/ip.git (master)... +Sep 27, 2023 1:14:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nixonwidjaja/ip.git (master) completed! +Sep 27, 2023 1:14:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [104/478] Analyzing https://github.com/Vanessamae23/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lunaroddity/ip.git completed! +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Vanessamae23/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/samuelmui8/ip.git... -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/YeoBohShin/ip.git completed! -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Vanessamae23/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/samuelmui8/ip.git to complete... -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/antonTan96/ip.git... -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/antonTan96/ip.git to complete... -Sep 26, 2023 2:07:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/GohTengFong/ip.git (master)... -Sep 26, 2023 2:07:10 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/GohTengFong/ip.git (master)... -Sep 26, 2023 2:07:10 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/GohTengFong/ip.git (master) completed! -Sep 26, 2023 2:07:10 PM reposense.report.ReportGenerator analyzeRepos -INFO: [122/478] Analyzing https://github.com/simbayippy/ip.git (master)... -Sep 26, 2023 2:07:10 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/simbayippy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:10 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/simbayippy/ip.git (master)... -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/WeeMingQing/ip.git completed! -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/andrechuakj/ip.git completed! +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/antonTan96/ip.git... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/owenyeo/ip.git... -Sep 26, 2023 2:07:10 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/antonTan96/ip.git to complete... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/owenyeo/ip.git to complete... -Sep 26, 2023 2:07:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/simbayippy/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/aliciamichellew/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dom-buri/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dom-buri/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dom-buri/ip.git (master) completed! +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [105/478] Analyzing https://github.com/tiongjjyi/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tiongjjyi/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tiongjjyi/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Vanessamae23/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Vanessamae23/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Vanessamae23/ip.git (master) completed! +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [106/478] Analyzing https://github.com/fuyiqiao/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/fuyiqiao/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/fuyiqiao/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/samuelmui8/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/gongg21/ip.git... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nabonitasen/ip.git... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nabonitasen/ip.git to complete... -Sep 26, 2023 2:07:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/simbayippy/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/antonTan96/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/simbayippy/ip.git (master) completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/aliciamichellew/ip.git completed! +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/gongg21/ip.git to complete... -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [123/478] Analyzing https://github.com/Khaleelur-Rahman/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/antonTan96/ip.git completed! +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nabonitasen/ip.git... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/erohsikivar/ip.git... -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Khaleelur-Rahman/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Khaleelur-Rahman/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/erohsikivar/ip.git to complete... -Sep 26, 2023 2:07:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AlainS87/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Khaleelur-Rahman/ip.git (master) completed! -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [124/478] Analyzing https://github.com/proto-aiken-13/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/proto-aiken-13/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/proto-aiken-13/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AlainS87/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AlainS87/ip.git (master) completed! -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [125/478] Analyzing https://github.com/weeweh/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nabonitasen/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/pzl111/ip.git... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/owenyeo/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nabonitasen/ip.git to complete... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/pzl111/ip.git... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/erohsikivar/ip.git to complete... +Sep 27, 2023 1:14:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tiongjjyi/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/pzl111/ip.git to complete... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tiongjjyi/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tiongjjyi/ip.git (master) completed! +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [107/478] Analyzing https://github.com/spatuly/ip.git (master)... +Sep 27, 2023 1:14:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/spatuly/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/spatuly/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/fuyiqiao/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/fuyiqiao/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/fuyiqiao/ip.git (master) completed! +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [108/478] Analyzing https://github.com/Kb-Tay/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Kb-Tay/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Kb-Tay/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/spatuly/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/pzl111/ip.git completed! +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/gongg21/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/spatuly/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/spatuly/ip.git (master) completed! +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [109/478] Analyzing https://github.com/tanshiyu1999/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/teozern1/ip.git... -Sep 26, 2023 2:07:11 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/weeweh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/weeweh/ip.git (master)... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Elijah5399/ip.git... -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/erohsikivar/ip.git completed! -Sep 26, 2023 2:07:11 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Elijah5399/ip.git... +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/teozern1/ip.git to complete... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanshiyu1999/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanshiyu1999/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Elijah5399/ip.git to complete... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nabonitasen/ip.git completed! +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicleongyj/ip.git... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicleongyj/ip.git to complete... -Sep 26, 2023 2:07:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/proto-aiken-13/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/proto-aiken-13/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/proto-aiken-13/ip.git (master) completed! -Sep 26, 2023 2:07:12 PM reposense.report.ReportGenerator analyzeRepos -INFO: [126/478] Analyzing https://github.com/bwangpj/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/weeweh/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/bwangpj/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/bwangpj/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/weeweh/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/weeweh/ip.git (master) completed! -Sep 26, 2023 2:07:12 PM reposense.report.ReportGenerator analyzeRepos -INFO: [127/478] Analyzing https://github.com/s-peiran/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/s-peiran/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/s-peiran/ip.git (master)... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/teozern1/ip.git completed! -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WinSheng1/ip.git... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:14 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WinSheng1/ip.git to complete... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kb-Tay/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kb-Tay/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kb-Tay/ip.git (master) completed! +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [110/478] Analyzing https://github.com/beatricecst/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/beatricecst/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/beatricecst/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanshiyu1999/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanshiyu1999/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanshiyu1999/ip.git (master) completed! +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [111/478] Analyzing https://github.com/tanveersingh10/ip.git (master)... +Sep 27, 2023 1:14:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tanveersingh10/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tanveersingh10/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/teozern1/ip.git completed! +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/nicleongyj/ip.git completed! -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/pzl111/ip.git completed! -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryamgoh/ip.git... -Sep 26, 2023 2:07:12 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Elijah5399/ip.git completed! -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yucongkoo/ip.git... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ryamgoh/ip.git to complete... +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yucongkoo/ip.git to complete... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Elijah5399/ip.git completed! +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Chen-Kuei/ip.git... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ryamgoh/ip.git to complete... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Chen-Kuei/ip.git to complete... -Sep 26, 2023 2:07:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/bwangpj/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/bwangpj/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/bwangpj/ip.git (master) completed! -Sep 26, 2023 2:07:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [128/478] Analyzing https://github.com/lawruixi/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lawruixi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lawruixi/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/s-peiran/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/s-peiran/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/s-peiran/ip.git (master) completed! -Sep 26, 2023 2:07:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [129/478] Analyzing https://github.com/jylow/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jylow/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jylow/ip.git (master)... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/WinSheng1/ip.git completed! -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/conradsoon/ip.git... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Chen-Kuei/ip.git to complete... +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/conradsoon/ip.git to complete... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Chen-Kuei/ip.git completed! -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/beatricecst/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/beatricecst/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/beatricecst/ip.git (master) completed! +Sep 27, 2023 1:14:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [112/478] Analyzing https://github.com/thienmy0/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/thienmy0/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/thienmy0/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tanveersingh10/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tanveersingh10/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tanveersingh10/ip.git (master) completed! +Sep 27, 2023 1:14:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [113/478] Analyzing https://github.com/s0ngyang/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/s0ngyang/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/s0ngyang/ip.git (master)... +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ryamgoh/ip.git completed! -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yucongkoo/ip.git completed! -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/GSgiansen/ip.git... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yucongkoo/ip.git completed! +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/et-irl/ip.git... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/GSgiansen/ip.git to complete... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/marioalvaro/ip.git... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/et-irl/ip.git to complete... -Sep 26, 2023 2:07:13 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/marioalvaro/ip.git to complete... -Sep 26, 2023 2:07:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jylow/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lawruixi/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jylow/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lawruixi/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jylow/ip.git (master) completed! -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [130/478] Analyzing https://github.com/JeremyYong128/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lawruixi/ip.git (master) completed! -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [131/478] Analyzing https://github.com/brandon-nam/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/brandon-nam/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/brandon-nam/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JeremyYong128/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JeremyYong128/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/JeremyYong128/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/JeremyYong128/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/JeremyYong128/ip.git (master) completed! -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [132/478] Analyzing https://github.com/Leb14/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/et-irl/ip.git completed! -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/marioalvaro/ip.git completed! -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/conradsoon/ip.git completed! +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Chen-Kuei/ip.git completed! +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/marioalvaro/ip.git... +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Seonlo99/ip.git... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/marioalvaro/ip.git to complete... +Sep 27, 2023 1:14:15 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Seonlo99/ip.git to complete... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/thienmy0/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/thienmy0/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/thienmy0/ip.git (master) completed! +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [114/478] Analyzing https://github.com/ldinghan/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/s0ngyang/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ldinghan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ldinghan/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/s0ngyang/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/s0ngyang/ip.git (master) completed! +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [115/478] Analyzing https://github.com/feifeiraindrops/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/feifeiraindrops/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/feifeiraindrops/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/et-irl/ip.git completed! +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/GSgiansen/ip.git completed! +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/joel-foo/ip.git... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/tim-pipi/ip.git... +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/joel-foo/ip.git to complete... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/GSgiansen/ip.git completed! -Sep 26, 2023 2:07:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Leb14/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Leb14/ip.git (master)... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/tim-pipi/ip.git... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/conradsoon/ip.git completed! -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tim-pipi/ip.git to complete... -Sep 26, 2023 2:07:14 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Seonlo99/ip.git completed! +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/marcellaantania/ip.git... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/marcellaantania/ip.git to complete... -Sep 26, 2023 2:07:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/brandon-nam/ip.git (master)... -Sep 26, 2023 2:07:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/brandon-nam/ip.git (master)... -Sep 26, 2023 2:07:15 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/brandon-nam/ip.git (master) completed! -Sep 26, 2023 2:07:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [133/478] Analyzing https://github.com/LHeng1/ip.git (master)... -Sep 26, 2023 2:07:15 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LHeng1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LHeng1/ip.git (master)... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Seonlo99/ip.git completed! -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/joel-foo/ip.git completed! -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/marioalvaro/ip.git completed! +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/brendanneojw/ip.git... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tim-pipi/ip.git completed! -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/brendanneojw/ip.git to complete... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ldinghan/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ldinghan/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/feifeiraindrops/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ldinghan/ip.git (master) completed! +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [116/478] Analyzing https://github.com/ryanongwx/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/feifeiraindrops/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/feifeiraindrops/ip.git (master) completed! +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator analyzeRepos +INFO: [117/478] Analyzing https://github.com/kwangthiag/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ryanongwx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ryanongwx/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kwangthiag/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kwangthiag/ip.git (master)... +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tim-pipi/ip.git completed! +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/li-rongzhi/ip.git... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:16 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/li-rongzhi/ip.git to complete... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/KamiliArsyad/ip.git... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/marcellaantania/ip.git completed! -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/KamiliArsyad/ip.git to complete... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/joel-foo/ip.git completed! +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/KamiliArsyad/ip.git... +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seraphimstreets/ip.git... -Sep 26, 2023 2:07:15 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/KamiliArsyad/ip.git to complete... +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/seraphimstreets/ip.git to complete... -Sep 26, 2023 2:07:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Leb14/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LHeng1/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Leb14/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LHeng1/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LHeng1/ip.git (master) completed! -Sep 26, 2023 2:07:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [134/478] Analyzing https://github.com/B-enguin/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Leb14/ip.git (master) completed! -Sep 26, 2023 2:07:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [135/478] Analyzing https://github.com/s-kybound/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/B-enguin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/B-enguin/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/s-kybound/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/s-kybound/ip.git (master)... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/brendanneojw/ip.git completed! -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/trgao/ip.git... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/trgao/ip.git to complete... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/seraphimstreets/ip.git completed! -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ryanongwx/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ryanongwx/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ryanongwx/ip.git (master) completed! +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [118/478] Analyzing https://github.com/elhy1999/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/elhy1999/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/elhy1999/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kwangthiag/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kwangthiag/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kwangthiag/ip.git (master) completed! +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [119/478] Analyzing https://github.com/songgthu/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/songgthu/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/songgthu/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/li-rongzhi/ip.git completed! -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lilozz2/ip.git... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jean-cq/ip.git... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lilozz2/ip.git to complete... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/seraphimstreets/ip.git completed! +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jean-cq/ip.git... +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jean-cq/ip.git to complete... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/KamiliArsyad/ip.git completed! -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/trgao/ip.git completed! +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jedkohjk/ip.git... -Sep 26, 2023 2:07:16 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/KamiliArsyad/ip.git completed! +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jedkohjk/ip.git to complete... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/B-enguin/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/s-kybound/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/B-enguin/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/B-enguin/ip.git (master) completed! -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/s-kybound/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [136/478] Analyzing https://github.com/wesho1107/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/s-kybound/ip.git (master) completed! -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [137/478] Analyzing https://github.com/yihfei/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wesho1107/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wesho1107/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yihfei/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yihfei/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/trgao/ip.git completed! -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yytan25/ip.git... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lilozz2/ip.git completed! -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:17 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yytan25/ip.git to complete... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/songgthu/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/songgthu/ip.git (master)... +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/songgthu/ip.git (master) completed! +Sep 27, 2023 1:14:17 AM reposense.report.ReportGenerator analyzeRepos +INFO: [120/478] Analyzing https://github.com/GohTengFong/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/GohTengFong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/GohTengFong/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lilozz2/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ryantzr1/ip.git... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ryantzr1/ip.git to complete... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jean-cq/ip.git completed! -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jedkohjk/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/maypfv/ip.git... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/maypfv/ip.git to complete... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yihfei/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yihfei/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yihfei/ip.git (master) completed! -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jedkohjk/ip.git completed! -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [138/478] Analyzing https://github.com/AaronJT1/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/TohLiYuan/ip.git... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wesho1107/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/TohLiYuan/ip.git to complete... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AaronJT1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AaronJT1/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wesho1107/ip.git (master)... -Sep 26, 2023 2:07:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wesho1107/ip.git (master) completed! -Sep 26, 2023 2:07:18 PM reposense.report.ReportGenerator analyzeRepos -INFO: [139/478] Analyzing https://github.com/dlathyun/ip.git (master)... -Sep 26, 2023 2:07:18 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dlathyun/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dlathyun/ip.git (master)... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/elhy1999/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jean-cq/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yytan25/ip.git completed! -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/TohLiYuan/ip.git... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JizhuoChen/ip.git... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ryantzr1/ip.git completed! -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/TohLiYuan/ip.git to complete... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JizhuoChen/ip.git to complete... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/elhy1999/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/elhy1999/ip.git (master) completed! +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [121/478] Analyzing https://github.com/Khaleelur-Rahman/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Khaleelur-Rahman/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Khaleelur-Rahman/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/GohTengFong/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/GohTengFong/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/GohTengFong/ip.git (master) completed! +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [122/478] Analyzing https://github.com/simbayippy/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/simbayippy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/simbayippy/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ryantzr1/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ChongWeiJie29/ip.git... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/maypfv/ip.git completed! -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ChongWeiJie29/ip.git to complete... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/maypfv/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Goh-Li-Ting/ip.git... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Goh-Li-Ting/ip.git to complete... -Sep 26, 2023 2:07:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AaronJT1/ip.git (master)... -Sep 26, 2023 2:07:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AaronJT1/ip.git (master)... -Sep 26, 2023 2:07:18 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AaronJT1/ip.git (master) completed! -Sep 26, 2023 2:07:18 PM reposense.report.ReportGenerator analyzeRepos -INFO: [140/478] Analyzing https://github.com/Angelyxx/ip.git (master)... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/TohLiYuan/ip.git completed! -Sep 26, 2023 2:07:18 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Angelyxx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Angelyxx/ip.git (master)... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/JizhuoChen/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Khaleelur-Rahman/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Khaleelur-Rahman/ip.git (master) completed! +Sep 27, 2023 1:14:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [123/478] Analyzing https://github.com/AlainS87/ip.git (master)... +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kristayeo/ip.git... -Sep 26, 2023 2:07:18 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/TohLiYuan/ip.git completed! +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kristayeo/ip.git to complete... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/JizhuoChen/ip.git completed! -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/derekjxtan/ip.git... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:18 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/derekjxtan/ip.git to complete... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Goh-Li-Ting/ip.git completed! -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/simbayippy/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/simbayippy/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/simbayippy/ip.git (master) completed! +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [124/478] Analyzing https://github.com/proto-aiken-13/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/proto-aiken-13/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/proto-aiken-13/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AlainS87/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AlainS87/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ChongWeiJie29/ip.git completed! -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shashahchk/ip.git... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Chandan8186/ip.git... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shashahchk/ip.git to complete... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Goh-Li-Ting/ip.git completed! +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Chandan8186/ip.git... +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Chandan8186/ip.git to complete... -Sep 26, 2023 2:07:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Angelyxx/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kristayeo/ip.git completed! -Sep 26, 2023 2:07:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Angelyxx/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/alyssaongyx/ip.git... -Sep 26, 2023 2:07:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dlathyun/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Angelyxx/ip.git (master) completed! -Sep 26, 2023 2:07:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [141/478] Analyzing https://github.com/ricketytoc/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/alyssaongyx/ip.git to complete... -Sep 26, 2023 2:07:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/dlathyun/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ricketytoc/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ricketytoc/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/dlathyun/ip.git (master) completed! -Sep 26, 2023 2:07:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [142/478] Analyzing https://github.com/jingting1412/ip.git (master)... -Sep 26, 2023 2:07:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jingting1412/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jingting1412/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/derekjxtan/ip.git completed! -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/alyssaongyx/ip.git to complete... +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AndrewJanong/ip.git... +Sep 27, 2023 1:14:19 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AndrewJanong/ip.git to complete... +Sep 27, 2023 1:14:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/proto-aiken-13/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/proto-aiken-13/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/proto-aiken-13/ip.git (master) completed! +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [125/478] Analyzing https://github.com/bwangpj/ip.git (master)... +Sep 27, 2023 1:14:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/bwangpj/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/bwangpj/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/shashahchk/ip.git completed! -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Chandan8186/ip.git completed! -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AndrewJanong/ip.git... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kailash201/ip.git... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AndrewJanong/ip.git to complete... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Kailash201/ip.git to complete... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/laurenlim2112/ip.git... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/laurenlim2112/ip.git to complete... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/alyssaongyx/ip.git completed! -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AndrewJanong/ip.git completed! +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/laurenlim2112/ip.git... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lambraydon/ip.git... -Sep 26, 2023 2:07:20 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/laurenlim2112/ip.git to complete... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/sk2001git/ip.git... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Kailash201/ip.git to complete... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/sk2001git/ip.git to complete... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lambraydon/ip.git to complete... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jingting1412/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ricketytoc/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jingting1412/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ricketytoc/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jingting1412/ip.git (master) completed! -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [143/478] Analyzing https://github.com/SinhaVedant/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ricketytoc/ip.git (master) completed! -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [144/478] Analyzing https://github.com/adhigop13/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SinhaVedant/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SinhaVedant/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/adhigop13/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/adhigop13/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SinhaVedant/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SinhaVedant/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SinhaVedant/ip.git (master) completed! -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [145/478] Analyzing https://github.com/jordankanghm/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/adhigop13/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jordankanghm/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jordankanghm/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/adhigop13/ip.git (master)... -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/adhigop13/ip.git (master) completed! -Sep 26, 2023 2:07:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [146/478] Analyzing https://github.com/freddychenyouren2/ip.git (master)... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kailash201/ip.git completed! -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/bwangpj/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/bwangpj/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/bwangpj/ip.git (master) completed! +Sep 27, 2023 1:14:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [126/478] Analyzing https://github.com/weeweh/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/weeweh/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/weeweh/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/weeweh/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/weeweh/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/weeweh/ip.git (master) completed! +Sep 27, 2023 1:14:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [127/478] Analyzing https://github.com/s-peiran/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/laurenlim2112/ip.git completed! -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lambraydon/ip.git completed! -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/sk2001git/ip.git... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AndrewJanong/ip.git completed! -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kailash201/ip.git completed! +Sep 27, 2023 1:14:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/s-peiran/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chonguschonguschongus/ip.git... -Sep 26, 2023 2:07:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/freddychenyouren2/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/freddychenyouren2/ip.git (master)... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/lshaoqin/ip.git... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/s-peiran/ip.git (master)... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chonguschonguschongus/ip.git to complete... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/lshaoqin/ip.git... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lambraydon/ip.git completed! +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/lshaoqin/ip.git to complete... +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/peasantbird/ip.git... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/sk2001git/ip.git to complete... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:20 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/peasantbird/ip.git to complete... -Sep 26, 2023 2:07:21 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/lshaoqin/ip.git to complete... -Sep 26, 2023 2:07:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jordankanghm/ip.git (master)... -Sep 26, 2023 2:07:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jordankanghm/ip.git (master)... -Sep 26, 2023 2:07:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jordankanghm/ip.git (master) completed! -Sep 26, 2023 2:07:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [147/478] Analyzing https://github.com/raydenlim/ip.git (master)... -Sep 26, 2023 2:07:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/raydenlim/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/raydenlim/ip.git (master)... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/peasantbird/ip.git completed! -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lshaoqin/ip.git completed! -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/sk2001git/ip.git completed! +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WangCheng0116/ip.git... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WangCheng0116/ip.git to complete... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/teozhengyang/ip.git... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/s-peiran/ip.git (master)... +Sep 27, 2023 1:14:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/s-peiran/ip.git (master)... +Sep 27, 2023 1:14:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/s-peiran/ip.git (master) completed! +Sep 27, 2023 1:14:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [128/478] Analyzing https://github.com/jylow/ip.git (master)... +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/chonguschonguschongus/ip.git completed! -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jylow/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jylow/ip.git (master)... +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/teozhengyang/ip.git... +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/teozhengyang/ip.git to complete... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lshaoqin/ip.git completed! +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chewjh1234/ip.git... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/chewjh1234/ip.git to complete... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/sk2001git/ip.git completed! -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/peasantbird/ip.git completed! +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/elaineshijie/ip.git... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/elaineshijie/ip.git to complete... -Sep 26, 2023 2:07:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/freddychenyouren2/ip.git (master)... -Sep 26, 2023 2:07:22 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/freddychenyouren2/ip.git (master)... -Sep 26, 2023 2:07:22 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/freddychenyouren2/ip.git (master) completed! -Sep 26, 2023 2:07:22 PM reposense.report.ReportGenerator analyzeRepos -INFO: [148/478] Analyzing https://github.com/jingyu987/ip.git (master)... -Sep 26, 2023 2:07:22 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jingyu987/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:22 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jingyu987/ip.git (master)... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/WangCheng0116/ip.git completed! -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lynnlow175/ip.git... -Sep 26, 2023 2:07:22 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:21 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lynnlow175/ip.git to complete... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chewjh1234/ip.git completed! -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AlainS87/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jylow/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jylow/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jylow/ip.git (master) completed! +Sep 27, 2023 1:14:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [129/478] Analyzing https://github.com/lawruixi/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lawruixi/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lawruixi/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AlainS87/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AlainS87/ip.git (master) completed! +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/elaineshijie/ip.git completed! +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lordidiot/ip.git... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [130/478] Analyzing https://github.com/JeremyYong128/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lordidiot/ip.git to complete... -Sep 26, 2023 2:07:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/raydenlim/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/raydenlim/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/elaineshijie/ip.git completed! -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JeremyYong128/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JeremyYong128/ip.git (master)... +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chewjh1234/ip.git completed! +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lynnlow175/ip.git completed! +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/chew01/ip.git... -Sep 26, 2023 2:07:23 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/raydenlim/ip.git (master) completed! -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/chew01/ip.git to complete... -Sep 26, 2023 2:07:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [149/478] Analyzing https://github.com/FerdiHS/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/FerdiHS/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/FerdiHS/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jingyu987/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jingyu987/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jingyu987/ip.git (master) completed! -Sep 26, 2023 2:07:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [150/478] Analyzing https://github.com/jrchoo/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jrchoo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jrchoo/ip.git (master)... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lynnlow175/ip.git completed! -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/RSXIX/ip.git... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/chew01/ip.git to complete... +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/RSXIX/ip.git to complete... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lordidiot/ip.git completed! -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/chew01/ip.git completed! -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/juliusgambe/ip.git... -Sep 26, 2023 2:07:23 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/zhonghan721/ip.git... -Sep 26, 2023 2:07:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/FerdiHS/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:22 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/juliusgambe/ip.git to complete... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/JeremyYong128/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/teozhengyang/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/JeremyYong128/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/chew01/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/JeremyYong128/ip.git (master) completed! +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/zhonghan721/ip.git... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [131/478] Analyzing https://github.com/brandon-nam/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zhonghan721/ip.git to complete... -Sep 26, 2023 2:07:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/FerdiHS/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/FerdiHS/ip.git (master) completed! -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [151/478] Analyzing https://github.com/RiyaMehta2211/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/RiyaMehta2211/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/RiyaMehta2211/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jrchoo/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jrchoo/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jrchoo/ip.git (master) completed! -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [152/478] Analyzing https://github.com/leezhanpeng/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/leezhanpeng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/leezhanpeng/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/RSXIX/ip.git completed! -Sep 26, 2023 2:07:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/RiyaMehta2211/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WZWren/ip.git... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WZWren/ip.git to complete... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/juliusgambe/ip.git completed! -Sep 26, 2023 2:07:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/RiyaMehta2211/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zhonghan721/ip.git completed! -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lawruixi/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/brandon-nam/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/brandon-nam/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/RSXIX/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lawruixi/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lawruixi/ip.git (master) completed! +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [132/478] Analyzing https://github.com/LHeng1/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/inezkok/ip.git... -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/RiyaMehta2211/ip.git (master) completed! -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [153/478] Analyzing https://github.com/darrentfy/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/wasjoe1/ip.git... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/inezkok/ip.git to complete... -Sep 26, 2023 2:07:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/darrentfy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/darrentfy/ip.git (master)... -Sep 26, 2023 2:07:24 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LHeng1/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LHeng1/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/juliusgambe/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/wasjoe1/ip.git... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wasjoe1/ip.git to complete... -Sep 26, 2023 2:07:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/leezhanpeng/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/leezhanpeng/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/leezhanpeng/ip.git (master) completed! -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [154/478] Analyzing https://github.com/redtailedfox/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/redtailedfox/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/redtailedfox/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/darrentfy/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WZWren/ip.git completed! -Sep 26, 2023 2:07:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/darrentfy/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/darrentfy/ip.git (master) completed! -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zhonghan721/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kokrui/ip.git... -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [155/478] Analyzing https://github.com/juzzztinsoong/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kokrui/ip.git to complete... -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/inezkok/ip.git completed! -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WZWren/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jinyang628/ip.git... -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wasjoe1/ip.git completed! -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/brandon-nam/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jinyang628/ip.git to complete... -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/inezkok/ip.git completed! +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nananakx-x/ip.git... -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/juzzztinsoong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/juzzztinsoong/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/redtailedfox/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LHeng1/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nananakx-x/ip.git to complete... -Sep 26, 2023 2:07:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/redtailedfox/ip.git (master)... -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/redtailedfox/ip.git (master) completed! -Sep 26, 2023 2:07:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [156/478] Analyzing https://github.com/waseemingly/ip.git (master)... -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/teozhengyang/ip.git completed! -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/brandon-nam/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/brandon-nam/ip.git (master) completed! +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [133/478] Analyzing https://github.com/Leb14/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LHeng1/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LHeng1/ip.git (master) completed! +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [134/478] Analyzing https://github.com/B-enguin/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Leb14/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Leb14/ip.git (master)... +Sep 27, 2023 1:14:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/B-enguin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/B-enguin/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wasjoe1/ip.git completed! +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ylyma/ip.git... -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ylyma/ip.git to complete... -Sep 26, 2023 2:07:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/juzzztinsoong/ip.git (master)... -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kokrui/ip.git completed! +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jinyang628/ip.git completed! -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AnnabelTing/ip.git... -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nananakx-x/ip.git completed! -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/timetraveller-123/ip.git... -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AnnabelTing/ip.git to complete... -Sep 26, 2023 2:07:26 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/timetraveller-123/ip.git to complete... -Sep 26, 2023 2:07:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/juzzztinsoong/ip.git (master)... -Sep 26, 2023 2:07:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/juzzztinsoong/ip.git (master) completed! -Sep 26, 2023 2:07:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [157/478] Analyzing https://github.com/Heran9/ip.git (master)... -Sep 26, 2023 2:07:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Heran9/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Heran9/ip.git (master)... -Sep 26, 2023 2:07:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/waseemingly/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/waseemingly/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Heran9/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Heran9/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Heran9/ip.git (master) completed! -Sep 26, 2023 2:07:27 PM reposense.report.ReportGenerator analyzeRepos -INFO: [158/478] Analyzing https://github.com/jingjie88/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jingjie88/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jingjie88/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AnnabelTing/ip.git to complete... +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nananakx-x/ip.git completed! +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/LicongHuang/ip.git... +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/LicongHuang/ip.git to complete... +Sep 27, 2023 1:14:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/B-enguin/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/B-enguin/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Leb14/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/B-enguin/ip.git (master) completed! +Sep 27, 2023 1:14:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [135/478] Analyzing https://github.com/s-kybound/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/s-kybound/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/s-kybound/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Leb14/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Leb14/ip.git (master) completed! +Sep 27, 2023 1:14:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [136/478] Analyzing https://github.com/wesho1107/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wesho1107/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wesho1107/ip.git (master)... +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AnnabelTing/ip.git completed! -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/timetraveller-123/ip.git completed! -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/LicongHuang/ip.git... -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Jweng88/ip.git... -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/LicongHuang/ip.git to complete... -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Jweng88/ip.git to complete... -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kokrui/ip.git completed! -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/EricXiong420/ip.git... -Sep 26, 2023 2:07:27 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/EricXiong420/ip.git to complete... -Sep 26, 2023 2:07:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jingjie88/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jingjie88/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jingjie88/ip.git (master) completed! -Sep 26, 2023 2:07:27 PM reposense.report.ReportGenerator analyzeRepos -INFO: [159/478] Analyzing https://github.com/Fallman2/ip.git (master)... -Sep 26, 2023 2:07:27 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Fallman2/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Fallman2/ip.git (master)... -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:24 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Jweng88/ip.git to complete... +Sep 27, 2023 1:14:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/s-kybound/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/s-kybound/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/s-kybound/ip.git (master) completed! +Sep 27, 2023 1:14:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [137/478] Analyzing https://github.com/yihfei/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yihfei/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yihfei/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ylyma/ip.git completed! +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Jweng88/ip.git completed! -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jovkusuma/ip.git... -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jovkusuma/ip.git to complete... -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ylyma/ip.git completed! -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bhnuka/ip.git... -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jovkusuma/ip.git to complete... +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bhnuka/ip.git to complete... -Sep 26, 2023 2:07:28 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wesho1107/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wesho1107/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wesho1107/ip.git (master) completed! +Sep 27, 2023 1:14:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [138/478] Analyzing https://github.com/AaronJT1/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AaronJT1/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AaronJT1/ip.git (master)... +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/EricXiong420/ip.git completed! -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/J-hta-n/ip.git... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:25 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/J-hta-n/ip.git to complete... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jovkusuma/ip.git completed! -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Tim-Siu/ip.git... -Sep 26, 2023 2:07:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Fallman2/ip.git (master)... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Tim-Siu/ip.git to complete... -Sep 26, 2023 2:07:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Fallman2/ip.git (master)... -Sep 26, 2023 2:07:29 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Fallman2/ip.git (master) completed! -Sep 26, 2023 2:07:29 PM reposense.report.ReportGenerator analyzeRepos -INFO: [160/478] Analyzing https://github.com/VN-Hao/ip.git (master)... -Sep 26, 2023 2:07:29 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/VN-Hao/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/VN-Hao/ip.git (master)... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/bhnuka/ip.git completed! -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yarnmengnus/ip.git... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yihfei/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yarnmengnus/ip.git to complete... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yihfei/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yihfei/ip.git (master) completed! +Sep 27, 2023 1:14:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [139/478] Analyzing https://github.com/dlathyun/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/J-hta-n/ip.git completed! -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sopa301/ip.git... -Sep 26, 2023 2:07:29 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sopa301/ip.git to complete... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dlathyun/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dlathyun/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AaronJT1/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AaronJT1/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AaronJT1/ip.git (master) completed! +Sep 27, 2023 1:14:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [140/478] Analyzing https://github.com/ricketytoc/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ricketytoc/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ricketytoc/ip.git (master)... +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Tim-Siu/ip.git completed! -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ngeeyonglim/ip.git... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:26 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ngeeyonglim/ip.git to complete... -Sep 26, 2023 2:07:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/waseemingly/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/yarnmengnus/ip.git completed! -Sep 26, 2023 2:07:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/waseemingly/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/flexibo/ip.git... -Sep 26, 2023 2:07:30 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/waseemingly/ip.git (master) completed! -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/flexibo/ip.git to complete... -Sep 26, 2023 2:07:30 PM reposense.report.ReportGenerator analyzeRepos -INFO: [161/478] Analyzing https://github.com/kimshitong/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sopa301/ip.git completed! -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ItsTYtan/ip.git... -Sep 26, 2023 2:07:30 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kimshitong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kimshitong/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ItsTYtan/ip.git to complete... -Sep 26, 2023 2:07:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/VN-Hao/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/VN-Hao/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/VN-Hao/ip.git (master) completed! -Sep 26, 2023 2:07:30 PM reposense.report.ReportGenerator analyzeRepos -INFO: [162/478] Analyzing https://github.com/ivanleekk/ip.git (master)... -Sep 26, 2023 2:07:30 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ngeeyonglim/ip.git completed! -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/javinchua/ip.git... -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/javinchua/ip.git to complete... -Sep 26, 2023 2:07:31 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ivanleekk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ivanleekk/ip.git (master)... -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ricketytoc/ip.git (master)... +Sep 27, 2023 1:14:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ricketytoc/ip.git (master)... +Sep 27, 2023 1:14:27 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ricketytoc/ip.git (master) completed! +Sep 27, 2023 1:14:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [141/478] Analyzing https://github.com/jingting1412/ip.git (master)... +Sep 27, 2023 1:14:27 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jingting1412/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jingting1412/ip.git (master)... +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ItsTYtan/ip.git completed! -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/amosting/ip.git... -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:27 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/amosting/ip.git to complete... -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/javinchua/ip.git completed! -Sep 26, 2023 2:07:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ivanleekk/ip.git (master)... -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Cleon2/ip.git... -Sep 26, 2023 2:07:31 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dlathyun/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Cleon2/ip.git to complete... -Sep 26, 2023 2:07:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ivanleekk/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ivanleekk/ip.git (master) completed! -Sep 26, 2023 2:07:32 PM reposense.report.ReportGenerator analyzeRepos -INFO: [163/478] Analyzing https://github.com/lamchenghou/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lamchenghou/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lamchenghou/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kimshitong/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kimshitong/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kimshitong/ip.git (master) completed! -Sep 26, 2023 2:07:32 PM reposense.report.ReportGenerator analyzeRepos -INFO: [164/478] Analyzing https://github.com/H1410101/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/LicongHuang/ip.git completed! -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/amosting/ip.git completed! -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ketweeen/ip.git... -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/sudarshan2401/ip.git... -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ketweeen/ip.git to complete... -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/dlathyun/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/dlathyun/ip.git (master) completed! +Sep 27, 2023 1:14:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [142/478] Analyzing https://github.com/SinhaVedant/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SinhaVedant/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SinhaVedant/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/amosting/ip.git completed! +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/sudarshan2401/ip.git... +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sudarshan2401/ip.git to complete... -Sep 26, 2023 2:07:32 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/H1410101/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/H1410101/ip.git (master)... -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jingting1412/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jingting1412/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jingting1412/ip.git (master) completed! +Sep 27, 2023 1:14:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [143/478] Analyzing https://github.com/jordankanghm/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jordankanghm/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jordankanghm/ip.git (master)... +Sep 27, 2023 1:14:28 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Cleon2/ip.git completed! -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wui-hong/ip.git... -Sep 26, 2023 2:07:32 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wui-hong/ip.git to complete... -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ketweeen/ip.git completed! -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Respirayson/ip.git... -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Respirayson/ip.git to complete... -Sep 26, 2023 2:07:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lamchenghou/ip.git (master)... -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SinhaVedant/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SinhaVedant/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SinhaVedant/ip.git (master) completed! +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [144/478] Analyzing https://github.com/adhigop13/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/adhigop13/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/adhigop13/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sudarshan2401/ip.git completed! -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Chrainx/ip.git... -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wui-hong/ip.git completed! -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Chrainx/ip.git to complete... -Sep 26, 2023 2:07:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lamchenghou/ip.git (master)... -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/flexibo/ip.git completed! +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/shishirbychapur/ip.git... -Sep 26, 2023 2:07:33 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lamchenghou/ip.git (master) completed! -Sep 26, 2023 2:07:33 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/shishirbychapur/ip.git to complete... -Sep 26, 2023 2:07:33 PM reposense.report.ReportGenerator analyzeRepos -INFO: [165/478] Analyzing https://github.com/tayruxin/ip.git (master)... -Sep 26, 2023 2:07:33 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tayruxin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:33 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tayruxin/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/flexibo/ip.git completed! -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wui-hong/ip.git completed! +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/sunzihan23/ip.git... -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/sunzihan23/ip.git to complete... -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Respirayson/ip.git completed! -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wj331/ip.git... -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wj331/ip.git to complete... -Sep 26, 2023 2:07:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tayruxin/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/H1410101/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tayruxin/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tayruxin/ip.git (master) completed! -Sep 26, 2023 2:07:34 PM reposense.report.ReportGenerator analyzeRepos -INFO: [166/478] Analyzing https://github.com/raynertjx/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/raynertjx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/raynertjx/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jordankanghm/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/adhigop13/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jordankanghm/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jordankanghm/ip.git (master) completed! +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [145/478] Analyzing https://github.com/freddychenyouren2/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/adhigop13/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/adhigop13/ip.git (master) completed! +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [146/478] Analyzing https://github.com/Angelyxx/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Angelyxx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Angelyxx/ip.git (master)... +Sep 27, 2023 1:14:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/freddychenyouren2/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/freddychenyouren2/ip.git (master)... +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/shishirbychapur/ip.git completed! -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tjch-o/ip.git... -Sep 26, 2023 2:07:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/H1410101/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/H1410101/ip.git (master) completed! -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tjch-o/ip.git to complete... -Sep 26, 2023 2:07:34 PM reposense.report.ReportGenerator analyzeRepos -INFO: [167/478] Analyzing https://github.com/zhengyup/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zhengyup/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zhengyup/ip.git (master)... -Sep 26, 2023 2:07:34 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/sunzihan23/ip.git completed! -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/licongshen12/ip.git... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/licongshen12/ip.git to complete... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wj331/ip.git completed! -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/mamayuan/ip.git... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mamayuan/ip.git to complete... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Chrainx/ip.git completed! +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tjch-o/ip.git completed! -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ong-wei-hong/ip.git... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ong-wei-hong/ip.git to complete... -Sep 26, 2023 2:07:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/raynertjx/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhengyup/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Chrainx/ip.git completed! -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tanboonkhong/ip.git... -Sep 26, 2023 2:07:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/raynertjx/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhengyup/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tanboonkhong/ip.git to complete... -Sep 26, 2023 2:07:35 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhengyup/ip.git (master) completed! -Sep 26, 2023 2:07:35 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/raynertjx/ip.git (master) completed! -Sep 26, 2023 2:07:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [168/478] Analyzing https://github.com/larrywang0701/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [169/478] Analyzing https://github.com/Carlintyj/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/larrywang0701/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/larrywang0701/ip.git (master)... -Sep 26, 2023 2:07:35 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Carlintyj/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Carlintyj/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:30 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ong-wei-hong/ip.git to complete... +Sep 27, 2023 1:14:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Angelyxx/ip.git (master)... +Sep 27, 2023 1:14:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Angelyxx/ip.git (master)... +Sep 27, 2023 1:14:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Angelyxx/ip.git (master) completed! +Sep 27, 2023 1:14:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [147/478] Analyzing https://github.com/jingyu987/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jingyu987/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jingyu987/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/freddychenyouren2/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/mamayuan/ip.git completed! -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/cbj252/ip.git... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/freddychenyouren2/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/licongshen12/ip.git completed! -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/cbj252/ip.git to complete... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/cbj252/ip.git... +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/freddychenyouren2/ip.git (master) completed! +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [148/478] Analyzing https://github.com/raydenlim/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlfredBeNoel/ip.git... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/cbj252/ip.git to complete... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlfredBeNoel/ip.git to complete... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/raydenlim/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/raydenlim/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jingyu987/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jingyu987/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tanboonkhong/ip.git completed! +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jingyu987/ip.git (master) completed! +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ong-wei-hong/ip.git completed! -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [149/478] Analyzing https://github.com/FerdiHS/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/keaganpzh/ip.git... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/keaganpzh/ip.git to complete... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tanboonkhong/ip.git completed! -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ElginTZM/ip.git... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/keaganpzh/ip.git to complete... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ElginTZM/ip.git to complete... -Sep 26, 2023 2:07:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/larrywang0701/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/larrywang0701/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/larrywang0701/ip.git (master) completed! -Sep 26, 2023 2:07:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [170/478] Analyzing https://github.com/nubnubyas/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nubnubyas/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nubnubyas/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Carlintyj/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Carlintyj/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Carlintyj/ip.git (master) completed! -Sep 26, 2023 2:07:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [171/478] Analyzing https://github.com/wxwern/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wxwern/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wxwern/ip.git (master)... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/cbj252/ip.git completed! -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/FerdiHS/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/FerdiHS/ip.git (master)... +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AlfredBeNoel/ip.git completed! -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LimJH2002/ip.git... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LimJH2002/ip.git to complete... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/cbj252/ip.git completed! +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cmHuang777/ip.git... -Sep 26, 2023 2:07:36 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:31 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cmHuang777/ip.git to complete... -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/keaganpzh/ip.git completed! -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/WeeeHung/ip.git... -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/WeeeHung/ip.git to complete... -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/raydenlim/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/raydenlim/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/raydenlim/ip.git (master) completed! +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [150/478] Analyzing https://github.com/jrchoo/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ElginTZM/ip.git completed! -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/FerdiHS/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xxiaoweii/ip.git... -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/xxiaoweii/ip.git to complete... -Sep 26, 2023 2:07:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nubnubyas/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nubnubyas/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nubnubyas/ip.git (master) completed! -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [172/478] Analyzing https://github.com/aslam341/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/aslam341/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/aslam341/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wxwern/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wxwern/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wxwern/ip.git (master) completed! -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [173/478] Analyzing https://github.com/LWZ19/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LWZ19/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LWZ19/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/cmHuang777/ip.git completed! -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jrchoo/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jrchoo/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/xxiaoweii/ip.git to complete... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/rayyan35p/ip.git... -Sep 26, 2023 2:07:37 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/rayyan35p/ip.git to complete... -Sep 26, 2023 2:07:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aslam341/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aslam341/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aslam341/ip.git (master) completed! -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [174/478] Analyzing https://github.com/rayshawntan/ip.git (master)... -Sep 26, 2023 2:07:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/rayshawntan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/rayshawntan/ip.git (master)... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/xxiaoweii/ip.git completed! -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LimJH2002/ip.git completed! +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/FerdiHS/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/FerdiHS/ip.git (master) completed! +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [151/478] Analyzing https://github.com/RiyaMehta2211/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dhruvir29/ip.git... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dhruvir29/ip.git to complete... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rayyan35p/ip.git completed! -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/RiyaMehta2211/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/RiyaMehta2211/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jrchoo/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jrchoo/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jrchoo/ip.git (master) completed! +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [152/478] Analyzing https://github.com/leezhanpeng/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/leezhanpeng/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/leezhanpeng/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/RiyaMehta2211/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/xxiaoweii/ip.git completed! +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/LinWanLeii/ip.git... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/WeeeHung/ip.git completed! -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/RiyaMehta2211/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/RiyaMehta2211/ip.git (master) completed! +Sep 27, 2023 1:14:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [153/478] Analyzing https://github.com/juzzztinsoong/ip.git (master)... +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/LinWanLeii/ip.git to complete... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dhruvir29/ip.git completed! +Sep 27, 2023 1:14:32 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rayyan35p/ip.git completed! +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/juzzztinsoong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/juzzztinsoong/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Song-Mengfei/ip.git... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Song-Mengfei/ip.git to complete... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LimJH2002/ip.git completed! -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jinyuan0425/ip.git... -Sep 26, 2023 2:07:38 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Song-Mengfei/ip.git to complete... +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jinyuan0425/ip.git to complete... -Sep 26, 2023 2:07:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/rayshawntan/ip.git (master)... -Sep 26, 2023 2:07:38 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/rayshawntan/ip.git (master)... -Sep 26, 2023 2:07:38 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/rayshawntan/ip.git (master) completed! -Sep 26, 2023 2:07:38 PM reposense.report.ReportGenerator analyzeRepos -INFO: [175/478] Analyzing https://github.com/aexolate/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/aexolate/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/aexolate/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dhruvir29/ip.git completed! -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/LinWanLeii/ip.git completed! +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tiif/ip.git... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tiif/ip.git to complete... -Sep 26, 2023 2:07:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LWZ19/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/LinWanLeii/ip.git completed! -Sep 26, 2023 2:07:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LWZ19/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/WeeeHung/ip.git completed! +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicholascher/ip.git... -Sep 26, 2023 2:07:39 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LWZ19/ip.git (master) completed! -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nicholascher/ip.git to complete... -Sep 26, 2023 2:07:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [176/478] Analyzing https://github.com/Sheeepen/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Song-Mengfei/ip.git completed! -Sep 26, 2023 2:07:39 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Sheeepen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Sheeepen/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nicholascher/ip.git to complete... +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/hcs1203/ip.git... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/hcs1203/ip.git to complete... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jinyuan0425/ip.git completed! -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/papataco14/ip.git... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/leezhanpeng/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/papataco14/ip.git to complete... -Sep 26, 2023 2:07:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aexolate/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aexolate/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aexolate/ip.git (master) completed! -Sep 26, 2023 2:07:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [177/478] Analyzing https://github.com/shuyangk/ip.git (master)... -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/leezhanpeng/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/leezhanpeng/ip.git (master) completed! +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [154/478] Analyzing https://github.com/darrentfy/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/juzzztinsoong/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/darrentfy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/darrentfy/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/juzzztinsoong/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/juzzztinsoong/ip.git (master) completed! +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [155/478] Analyzing https://github.com/redtailedfox/ip.git (master)... +Sep 27, 2023 1:14:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/redtailedfox/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/redtailedfox/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tiif/ip.git completed! -Sep 26, 2023 2:07:39 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nicholascher/ip.git completed! +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/KamJiaYue/ip.git... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/KamJiaYue/ip.git to complete... -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shuyangk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shuyangk/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Sheeepen/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Sheeepen/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Sheeepen/ip.git (master) completed! -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator analyzeRepos -INFO: [178/478] Analyzing https://github.com/timleow/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/timleow/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/timleow/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/papataco14/ip.git completed! -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/NereusWB922/ip.git... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/hcs1203/ip.git completed! -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/NereusWB922/ip.git to complete... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/PohSayKeong/ip.git... -Sep 26, 2023 2:07:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/shuyangk/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/PohSayKeong/ip.git to complete... -Sep 26, 2023 2:07:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shuyangk/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shuyangk/ip.git (master) completed! -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator analyzeRepos -INFO: [179/478] Analyzing https://github.com/iyioon/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/iyioon/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/iyioon/ip.git (master)... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/KamJiaYue/ip.git completed! -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/redtailedfox/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/redtailedfox/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/redtailedfox/ip.git (master) completed! +Sep 27, 2023 1:14:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [156/478] Analyzing https://github.com/Fallman2/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/papataco14/ip.git completed! +Sep 27, 2023 1:14:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Fallman2/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ivyy-poison/ip.git... -Sep 26, 2023 2:07:40 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Fallman2/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ivyy-poison/ip.git to complete... -Sep 26, 2023 2:07:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/iyioon/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/timleow/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/iyioon/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/iyioon/ip.git (master) completed! -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [180/478] Analyzing https://github.com/kiwibang/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/darrentfy/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/darrentfy/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/darrentfy/ip.git (master) completed! +Sep 27, 2023 1:14:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [157/478] Analyzing https://github.com/waseemingly/ip.git (master)... +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/PohSayKeong/ip.git completed! -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jacobcuison/ip.git... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jacobcuison/ip.git to complete... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nicholascher/ip.git completed! -Sep 26, 2023 2:07:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/timleow/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kiwibang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kiwibang/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/timleow/ip.git (master) completed! -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/NereusWB922/ip.git completed! +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ji-just-ji/ip.git... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [181/478] Analyzing https://github.com/ncmathan/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ji-just-ji/ip.git to complete... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/NereusWB922/ip.git completed! -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:34 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ivyy-poison/ip.git completed! +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kohkaijie/ip.git... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kohkaijie/ip.git to complete... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ncmathan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ncmathan/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ivyy-poison/ip.git completed! -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Fallman2/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/KamJiaYue/ip.git completed! +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/rocketninja7/ip.git... -Sep 26, 2023 2:07:41 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Fallman2/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Fallman2/ip.git (master) completed! +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/rocketninja7/ip.git to complete... -Sep 26, 2023 2:07:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kiwibang/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kiwibang/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kiwibang/ip.git (master) completed! -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [182/478] Analyzing https://github.com/LuoZYi/ip.git (master)... -Sep 26, 2023 2:07:41 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LuoZYi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LuoZYi/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [158/478] Analyzing https://github.com/Heran9/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Heran9/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Heran9/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/waseemingly/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/waseemingly/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jacobcuison/ip.git completed! -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ji-just-ji/ip.git completed! -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Heran9/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zekone/ip.git... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zekone/ip.git to complete... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Heran9/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Heran9/ip.git (master) completed! +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [159/478] Analyzing https://github.com/VN-Hao/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ji-just-ji/ip.git completed! +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/markgcera/ip.git... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/VN-Hao/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/VN-Hao/ip.git (master)... +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/markgcera/ip.git to complete... -Sep 26, 2023 2:07:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LuoZYi/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LuoZYi/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LuoZYi/ip.git (master) completed! -Sep 26, 2023 2:07:42 PM reposense.report.ReportGenerator analyzeRepos -INFO: [183/478] Analyzing https://github.com/asdfghjkxd/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/rocketninja7/ip.git completed! -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/PearlynnT/ip.git... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:35 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/PearlynnT/ip.git to complete... -Sep 26, 2023 2:07:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ncmathan/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/asdfghjkxd/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/asdfghjkxd/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/kohkaijie/ip.git completed! -Sep 26, 2023 2:07:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ncmathan/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ncmathan/ip.git (master) completed! -Sep 26, 2023 2:07:42 PM reposense.report.ReportGenerator analyzeRepos -INFO: [184/478] Analyzing https://github.com/mingyu-wan/ip.git (master)... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/StevenLiudw/ip.git... -Sep 26, 2023 2:07:42 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/StevenLiudw/ip.git to complete... -Sep 26, 2023 2:07:42 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mingyu-wan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mingyu-wan/ip.git (master)... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/zekone/ip.git completed! -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/markgcera/ip.git completed! -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/TeeRenJing/ip.git... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/mounilsankar/ip.git... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/TeeRenJing/ip.git to complete... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/VN-Hao/ip.git (master)... +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/markgcera/ip.git completed! +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/mounilsankar/ip.git... +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/mounilsankar/ip.git to complete... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/PearlynnT/ip.git completed! -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/VN-Hao/ip.git (master)... +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dloh2236/ip.git... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dloh2236/ip.git to complete... -Sep 26, 2023 2:07:43 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mingyu-wan/ip.git (master)... -Sep 26, 2023 2:07:43 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mingyu-wan/ip.git (master)... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/VN-Hao/ip.git (master) completed! +Sep 27, 2023 1:14:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [160/478] Analyzing https://github.com/kimshitong/ip.git (master)... +Sep 27, 2023 1:14:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kimshitong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kimshitong/ip.git (master)... +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/StevenLiudw/ip.git completed! -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/zannloo/ip.git... -Sep 26, 2023 2:07:43 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mingyu-wan/ip.git (master) completed! -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/zannloo/ip.git to complete... -Sep 26, 2023 2:07:43 PM reposense.report.ReportGenerator analyzeRepos -INFO: [185/478] Analyzing https://github.com/Nid21cs/ip.git (master)... -Sep 26, 2023 2:07:43 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Nid21cs/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:43 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Nid21cs/ip.git (master)... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/TeeRenJing/ip.git completed! -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/junnengsoo/ip.git... -Sep 26, 2023 2:07:43 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:36 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/junnengsoo/ip.git to complete... -Sep 26, 2023 2:07:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Nid21cs/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Nid21cs/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Nid21cs/ip.git (master) completed! -Sep 26, 2023 2:07:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [186/478] Analyzing https://github.com/McNaBry/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/asdfghjkxd/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/McNaBry/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/McNaBry/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dloh2236/ip.git completed! -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/mounilsankar/ip.git completed! +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/freshcabbage123/ip.git... -Sep 26, 2023 2:07:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/asdfghjkxd/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zannloo/ip.git completed! -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/freshcabbage123/ip.git to complete... -Sep 26, 2023 2:07:44 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/asdfghjkxd/ip.git (master) completed! -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dloh2236/ip.git completed! +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kokseng1/ip.git... -Sep 26, 2023 2:07:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [187/478] Analyzing https://github.com/miljyy/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kokseng1/ip.git to complete... -Sep 26, 2023 2:07:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/miljyy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/miljyy/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kimshitong/ip.git (master)... +Sep 27, 2023 1:14:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kimshitong/ip.git (master)... +Sep 27, 2023 1:14:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kimshitong/ip.git (master) completed! +Sep 27, 2023 1:14:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [161/478] Analyzing https://github.com/jingjie88/ip.git (master)... +Sep 27, 2023 1:14:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jingjie88/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jingjie88/ip.git (master)... +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zannloo/ip.git completed! +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/junnengsoo/ip.git completed! -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/itsNatTan/ip.git... -Sep 26, 2023 2:07:44 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/itsNatTan/ip.git to complete... -Sep 26, 2023 2:07:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/McNaBry/ip.git (master)... -Sep 26, 2023 2:07:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/McNaBry/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/McNaBry/ip.git (master) completed! -Sep 26, 2023 2:07:45 PM reposense.report.ReportGenerator analyzeRepos -INFO: [188/478] Analyzing https://github.com/sushiyade/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/miljyy/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/miljyy/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/miljyy/ip.git (master) completed! -Sep 26, 2023 2:07:45 PM reposense.report.ReportGenerator analyzeRepos -INFO: [189/478] Analyzing https://github.com/ncduy0303/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Kokseng1/ip.git completed! -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tjingsheng/ip.git... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/mounilsankar/ip.git completed! -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/itsNatTan/ip.git to complete... +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tjingsheng/ip.git to complete... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ZD292/ip.git... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/freshcabbage123/ip.git completed! -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ZD292/ip.git... +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ZD292/ip.git to complete... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Kokseng1/ip.git completed! +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/alientian/ip.git... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/alientian/ip.git to complete... -Sep 26, 2023 2:07:45 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ncduy0303/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ncduy0303/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/sushiyade/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/sushiyade/ip.git (master)... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jingjie88/ip.git (master)... +Sep 27, 2023 1:14:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jingjie88/ip.git (master)... +Sep 27, 2023 1:14:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jingjie88/ip.git (master) completed! +Sep 27, 2023 1:14:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [162/478] Analyzing https://github.com/H1410101/ip.git (master)... +Sep 27, 2023 1:14:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/H1410101/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/H1410101/ip.git (master)... +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/itsNatTan/ip.git completed! -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/frrrrry/ip.git... -Sep 26, 2023 2:07:45 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/frrrrry/ip.git to complete... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ZD292/ip.git completed! -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/wanghejin/ip.git... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/alientian/ip.git completed! -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/wanghejin/ip.git... +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wanghejin/ip.git to complete... -Sep 26, 2023 2:07:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ncduy0303/ip.git (master)... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ZD292/ip.git completed! +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/MagnificentCreature/ip.git... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/MagnificentCreature/ip.git to complete... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/frrrrry/ip.git completed! -Sep 26, 2023 2:07:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ncduy0303/ip.git (master)... -Sep 26, 2023 2:07:46 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ncduy0303/ip.git (master) completed! -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tjingsheng/ip.git completed! +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/SungMatt/ip.git... -Sep 26, 2023 2:07:46 PM reposense.report.ReportGenerator analyzeRepos -INFO: [190/478] Analyzing https://github.com/eyelessrhyme7/ip.git (master)... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/SungMatt/ip.git to complete... -Sep 26, 2023 2:07:46 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/eyelessrhyme7/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/eyelessrhyme7/ip.git (master)... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tjingsheng/ip.git completed! -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/frrrrry/ip.git completed! +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/andrefoo/ip.git... -Sep 26, 2023 2:07:46 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:38 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/andrefoo/ip.git to complete... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/MagnificentCreature/ip.git completed! +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wanghejin/ip.git completed! -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tohpinren/ip.git... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tohpinren/ip.git to complete... -Sep 26, 2023 2:07:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/eyelessrhyme7/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/eyelessrhyme7/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/MagnificentCreature/ip.git completed! -Sep 26, 2023 2:07:47 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/eyelessrhyme7/ip.git (master) completed! -Sep 26, 2023 2:07:47 PM reposense.report.ReportGenerator analyzeRepos -INFO: [191/478] Analyzing https://github.com/ruishanteo/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sushiyade/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/XihuaZ/ip.git... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/XihuaZ/ip.git to complete... -Sep 26, 2023 2:07:47 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruishanteo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:47 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruishanteo/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/andrefoo/ip.git completed! -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/waseemingly/ip.git (master)... +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/xavierpok/ip.git... -Sep 26, 2023 2:07:47 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/xavierpok/ip.git to complete... -Sep 26, 2023 2:07:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sushiyade/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sushiyade/ip.git (master) completed! -Sep 26, 2023 2:07:47 PM reposense.report.ReportGenerator analyzeRepos -INFO: [192/478] Analyzing https://github.com/Nixx162/ip.git (master)... -Sep 26, 2023 2:07:47 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Nixx162/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:47 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Nixx162/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tohpinren/ip.git completed! -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/XihuaZ/ip.git completed! +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/bkjwjason/ip.git... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/bkjwjason/ip.git to complete... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/XihuaZ/ip.git completed! -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:39 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tohpinren/ip.git completed! +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Choonyan02/ip.git... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Choonyan02/ip.git to complete... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/H1410101/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/SungMatt/ip.git completed! +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/xavierpok/ip.git completed! -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/aarontxz/ip.git... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/aarontxz/ip.git to complete... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/SungMatt/ip.git completed! -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jianyangg/ip.git... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/aarontxz/ip.git to complete... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jianyangg/ip.git to complete... -Sep 26, 2023 2:07:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ruishanteo/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ruishanteo/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ruishanteo/ip.git (master) completed! -Sep 26, 2023 2:07:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [193/478] Analyzing https://github.com/m1oojv/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/m1oojv/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/m1oojv/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Nixx162/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Nixx162/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Nixx162/ip.git (master) completed! -Sep 26, 2023 2:07:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [194/478] Analyzing https://github.com/Gabriel4357/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Gabriel4357/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Gabriel4357/ip.git (master)... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/H1410101/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/H1410101/ip.git (master) completed! +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [163/478] Analyzing https://github.com/tayruxin/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/waseemingly/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/waseemingly/ip.git (master) completed! +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [164/478] Analyzing https://github.com/ivanleekk/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tayruxin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tayruxin/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ivanleekk/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ivanleekk/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/bkjwjason/ip.git completed! -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/tayian/ip.git... -Sep 26, 2023 2:07:48 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/tayian/ip.git to complete... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Choonyan02/ip.git completed! -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ivanleekk/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wnchan/ip.git... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tayruxin/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wnchan/ip.git to complete... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tayruxin/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ivanleekk/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tayruxin/ip.git (master) completed! +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ivanleekk/ip.git (master) completed! +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [165/478] Analyzing https://github.com/lamchenghou/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [166/478] Analyzing https://github.com/raynertjx/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lamchenghou/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lamchenghou/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/raynertjx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/raynertjx/ip.git (master)... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/aarontxz/ip.git completed! -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Jweewee/ip.git... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Jweewee/ip.git to complete... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jianyangg/ip.git completed! -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Jweewee/ip.git... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/cyaoxuan/ip.git... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Jweewee/ip.git to complete... +Sep 27, 2023 1:14:40 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/cyaoxuan/ip.git to complete... -Sep 26, 2023 2:07:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/m1oojv/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/m1oojv/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/m1oojv/ip.git (master) completed! -Sep 26, 2023 2:07:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [195/478] Analyzing https://github.com/mfjkri/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Gabriel4357/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Gabriel4357/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mfjkri/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mfjkri/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Gabriel4357/ip.git (master) completed! -Sep 26, 2023 2:07:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [196/478] Analyzing https://github.com/RoeReRe/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/RoeReRe/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/RoeReRe/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/tayian/ip.git completed! -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/anthonytamzil/ip.git... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/anthonytamzil/ip.git to complete... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/wnchan/ip.git completed! -Sep 26, 2023 2:07:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/RoeReRe/ip.git (master)... -Sep 26, 2023 2:07:49 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/CelestineTan03/ip.git... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/CelestineTan03/ip.git to complete... -Sep 26, 2023 2:07:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/RoeReRe/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/RoeReRe/ip.git (master) completed! -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [197/478] Analyzing https://github.com/junhonglow/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/raynertjx/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/raynertjx/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/raynertjx/ip.git (master) completed! +Sep 27, 2023 1:14:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lamchenghou/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [167/478] Analyzing https://github.com/zhengyup/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zhengyup/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zhengyup/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lamchenghou/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lamchenghou/ip.git (master) completed! +Sep 27, 2023 1:14:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [168/478] Analyzing https://github.com/Carlintyj/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Carlintyj/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Carlintyj/ip.git (master)... +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/cyaoxuan/ip.git completed! -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/saltedfishxx/ip.git... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/junhonglow/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/junhonglow/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/saltedfishxx/ip.git to complete... -Sep 26, 2023 2:07:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mfjkri/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/anthonytamzil/ip.git completed! -Sep 26, 2023 2:07:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mfjkri/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/saltedfishxx/ip.git to complete... +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/euchangxian/ip.git... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mfjkri/ip.git (master) completed! -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/CelestineTan03/ip.git completed! +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/euchangxian/ip.git to complete... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [198/478] Analyzing https://github.com/Badatprogrammiing/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Badatprogrammiing/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Badatprogrammiing/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/junhonglow/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/junhonglow/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/junhonglow/ip.git (master) completed! -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [199/478] Analyzing https://github.com/nknguyenhc/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nknguyenhc/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nknguyenhc/ip.git (master)... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/saltedfishxx/ip.git completed! -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AlagappanRa/ip.git... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:41 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AlagappanRa/ip.git to complete... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Jweewee/ip.git completed! -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Ken-Lai/ip.git... -Sep 26, 2023 2:07:50 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Ken-Lai/ip.git to complete... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/CelestineTan03/ip.git completed! -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/itssisi/ip.git... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/itssisi/ip.git to complete... -Sep 26, 2023 2:07:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Badatprogrammiing/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Badatprogrammiing/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Badatprogrammiing/ip.git (master) completed! -Sep 26, 2023 2:07:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [200/478] Analyzing https://github.com/winson8222/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/winson8222/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/winson8222/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhengyup/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhengyup/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhengyup/ip.git (master) completed! +Sep 27, 2023 1:14:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Carlintyj/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [169/478] Analyzing https://github.com/larrywang0701/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/larrywang0701/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/larrywang0701/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Carlintyj/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Carlintyj/ip.git (master) completed! +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [170/478] Analyzing https://github.com/wxwern/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wxwern/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wxwern/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/saltedfishxx/ip.git completed! +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AlagappanRa/ip.git completed! -Sep 26, 2023 2:07:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nknguyenhc/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Ken-Lai/ip.git completed! -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/itssisi/ip.git... +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jamz903/ip.git... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jamz903/ip.git to complete... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/itssisi/ip.git to complete... +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Ken-Lai/ip.git completed! +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Kevin-Liusx/ip.git... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Kevin-Liusx/ip.git to complete... -Sep 26, 2023 2:07:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nknguyenhc/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nknguyenhc/ip.git (master) completed! -Sep 26, 2023 2:07:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [201/478] Analyzing https://github.com/wujy28/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/itssisi/ip.git completed! -Sep 26, 2023 2:07:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wujy28/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wujy28/ip.git (master)... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/euchangxian/ip.git completed! +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Propene-Dan/ip.git... -Sep 26, 2023 2:07:51 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:42 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Propene-Dan/ip.git to complete... -Sep 26, 2023 2:07:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/winson8222/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/winson8222/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/winson8222/ip.git (master) completed! -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [202/478] Analyzing https://github.com/SimWPEric/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/SimWPEric/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/SimWPEric/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wujy28/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wujy28/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wujy28/ip.git (master) completed! -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/euchangxian/ip.git completed! -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [203/478] Analyzing https://github.com/HugeNoob/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/larrywang0701/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/larrywang0701/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/larrywang0701/ip.git (master) completed! +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [171/478] Analyzing https://github.com/nubnubyas/ip.git (master)... +Sep 27, 2023 1:14:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nubnubyas/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nubnubyas/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/itssisi/ip.git completed! +Sep 27, 2023 1:14:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wxwern/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/ChuanXinNg/ip.git... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/ChuanXinNg/ip.git to complete... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/jamz903/ip.git completed! -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/HugeNoob/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/HugeNoob/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/kenvynKwek/ip.git... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wxwern/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wxwern/ip.git (master) completed! +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/kenvynKwek/ip.git to complete... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [172/478] Analyzing https://github.com/aslam341/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Kevin-Liusx/ip.git completed! -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/aslam341/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/aslam341/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Propene-Dan/ip.git completed! +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/Ruizhi2001/ip.git... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Ruizhi2001/ip.git to complete... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Propene-Dan/ip.git completed! -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/prawnzyy/ip.git... -Sep 26, 2023 2:07:52 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/prawnzyy/ip.git to complete... -Sep 26, 2023 2:07:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SimWPEric/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SimWPEric/ip.git (master)... -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SimWPEric/ip.git (master) completed! -Sep 26, 2023 2:07:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [204/478] Analyzing https://github.com/lerxuann/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lerxuann/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lerxuann/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/HugeNoob/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nubnubyas/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nubnubyas/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nubnubyas/ip.git (master) completed! +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [173/478] Analyzing https://github.com/LWZ19/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LWZ19/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LWZ19/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/ChuanXinNg/ip.git completed! -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kenvynKwek/ip.git completed! +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/saraozn/ip.git... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/saraozn/ip.git to complete... -Sep 26, 2023 2:07:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/HugeNoob/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/HugeNoob/ip.git (master) completed! -Sep 26, 2023 2:07:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [205/478] Analyzing https://github.com/Weiennn/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kenvynKwek/ip.git completed! -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/nicholastng010601/ip.git... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/nicholastng010601/ip.git to complete... -Sep 26, 2023 2:07:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Weiennn/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Weiennn/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aslam341/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/prawnzyy/ip.git completed! -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aslam341/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aslam341/ip.git (master) completed! +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [174/478] Analyzing https://github.com/timleow/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/DistractedCat/ip.git... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/DistractedCat/ip.git to complete... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/timleow/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/timleow/ip.git (master)... +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Ruizhi2001/ip.git completed! -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/yezkez10/ip.git... -Sep 26, 2023 2:07:53 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:43 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/yezkez10/ip.git to complete... -Sep 26, 2023 2:07:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lerxuann/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lerxuann/ip.git (master)... -Sep 26, 2023 2:07:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lerxuann/ip.git (master) completed! -Sep 26, 2023 2:07:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [206/478] Analyzing https://github.com/qyaner/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/qyaner/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/qyaner/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/saraozn/ip.git completed! -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nicholastng010601/ip.git completed! +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/revdrag/ip.git... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/revdrag/ip.git to complete... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nicholastng010601/ip.git completed! -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/saraozn/ip.git completed! +Sep 27, 2023 1:14:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LWZ19/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/alvinlim277/ip.git... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yezkez10/ip.git completed! +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/alvinlim277/ip.git to complete... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/DistractedCat/ip.git completed! -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/JasonRay168/ip.git... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/JasonRay168/ip.git to complete... -Sep 26, 2023 2:07:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Weiennn/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Weiennn/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Weiennn/ip.git (master) completed! -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yezkez10/ip.git completed! -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [207/478] Analyzing https://github.com/maj0-0/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/DistractedCat/ip.git completed! +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/billieboy7/ip.git... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LWZ19/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/timleow/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/billieboy7/ip.git to complete... -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/maj0-0/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/maj0-0/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/qyaner/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/qyaner/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/qyaner/ip.git (master) completed! -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [208/478] Analyzing https://github.com/ruiyangzh/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruiyangzh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruiyangzh/ip.git (master)... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LWZ19/ip.git (master) completed! +Sep 27, 2023 1:14:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [175/478] Analyzing https://github.com/aexolate/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/timleow/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/timleow/ip.git (master) completed! +Sep 27, 2023 1:14:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/aexolate/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/aexolate/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [176/478] Analyzing https://github.com/rayshawntan/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/rayshawntan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/rayshawntan/ip.git (master)... +Sep 27, 2023 1:14:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aexolate/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/revdrag/ip.git completed! -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aexolate/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aexolate/ip.git (master) completed! +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [177/478] Analyzing https://github.com/Sheeepen/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jannnice/ip.git... -Sep 26, 2023 2:07:54 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jannnice/ip.git to complete... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/alvinlim277/ip.git completed! -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jannnice/ip.git to complete... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/evanyan13/ip.git... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Sheeepen/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Sheeepen/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/evanyan13/ip.git to complete... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/billieboy7/ip.git completed! +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/JasonRay168/ip.git completed! -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/samuelim01/ip.git... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/samuelim01/ip.git to complete... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/billieboy7/ip.git completed! -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dinde2004/ip.git... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/samuelim01/ip.git to complete... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dinde2004/ip.git to complete... -Sep 26, 2023 2:07:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ruiyangzh/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jannnice/ip.git completed! -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/rayshawntan/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/rayshawntan/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/rayshawntan/ip.git (master) completed! +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [178/478] Analyzing https://github.com/shuyangk/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shuyangk/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shuyangk/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Sheeepen/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Sheeepen/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Sheeepen/ip.git (master) completed! +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [179/478] Analyzing https://github.com/kiwibang/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/shuyangk/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shuyangk/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shuyangk/ip.git (master) completed! +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [180/478] Analyzing https://github.com/iyioon/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kiwibang/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kiwibang/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/iyioon/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/iyioon/ip.git (master)... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/samuelim01/ip.git completed! +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dinde2004/ip.git completed! +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/seanpzk/ip.git... -Sep 26, 2023 2:07:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/maj0-0/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/seanpzk/ip.git to complete... -Sep 26, 2023 2:07:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ruiyangzh/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ruiyangzh/ip.git (master) completed! -Sep 26, 2023 2:07:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [209/478] Analyzing https://github.com/Bombbird2001/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/maj0-0/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/maj0-0/ip.git (master) completed! -Sep 26, 2023 2:07:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [210/478] Analyzing https://github.com/adammangzijun/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Bombbird2001/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Bombbird2001/ip.git (master)... -Sep 26, 2023 2:07:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/adammangzijun/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/adammangzijun/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/evanyan13/ip.git completed! -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/KumChaiYin/ip.git... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dinde2004/ip.git completed! -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/KumChaiYin/ip.git to complete... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/lsyurea/ip.git... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/samuelim01/ip.git completed! -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Sasmik23/ip.git... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/seanpzk/ip.git to complete... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jannnice/ip.git completed! +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/lsyurea/ip.git... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lsyurea/ip.git to complete... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/evanyan13/ip.git completed! +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Sasmik23/ip.git... +Sep 27, 2023 1:14:45 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/Sasmik23/ip.git to complete... -Sep 26, 2023 2:07:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/adammangzijun/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/adammangzijun/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/adammangzijun/ip.git (master) completed! -Sep 26, 2023 2:07:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [211/478] Analyzing https://github.com/andytoh1/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/andytoh1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:56 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/andytoh1/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/iyioon/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kiwibang/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/iyioon/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/iyioon/ip.git (master) completed! +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [181/478] Analyzing https://github.com/ncmathan/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/seanpzk/ip.git completed! -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kiwibang/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/geraldngjx/ip.git... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/geraldngjx/ip.git to complete... -Sep 26, 2023 2:07:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Bombbird2001/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Bombbird2001/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Bombbird2001/ip.git (master) completed! -Sep 26, 2023 2:07:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [212/478] Analyzing https://github.com/Originalidk/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Originalidk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:56 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Originalidk/ip.git (master)... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kiwibang/ip.git (master) completed! +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [182/478] Analyzing https://github.com/LuoZYi/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LuoZYi/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LuoZYi/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ncmathan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ncmathan/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/lsyurea/ip.git completed! -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/lululwtv/ip.git... -Sep 26, 2023 2:07:56 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/KumChaiYin/ip.git completed! +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/lululwtv/ip.git to complete... -Sep 26, 2023 2:07:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/andytoh1/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/andytoh1/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/andytoh1/ip.git (master) completed! -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator analyzeRepos -INFO: [213/478] Analyzing https://github.com/quzhetao01/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/quzhetao01/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/quzhetao01/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/geraldngjx/ip.git completed! -Sep 26, 2023 2:07:57 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/garylow2001/ip.git... -Sep 26, 2023 2:07:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/garylow2001/ip.git to complete... -Sep 26, 2023 2:07:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Originalidk/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Originalidk/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Originalidk/ip.git (master) completed! -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator analyzeRepos -INFO: [214/478] Analyzing https://github.com/hyc17003/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LuoZYi/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LuoZYi/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LuoZYi/ip.git (master) completed! +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [183/478] Analyzing https://github.com/asdfghjkxd/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/Sasmik23/ip.git completed! -Sep 26, 2023 2:07:57 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/leontan2/ip.git... -Sep 26, 2023 2:07:57 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/leontan2/ip.git to complete... -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/hyc17003/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/hyc17003/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/quzhetao01/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/quzhetao01/ip.git (master)... -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/quzhetao01/ip.git (master) completed! -Sep 26, 2023 2:07:57 PM reposense.report.ReportGenerator analyzeRepos -INFO: [215/478] Analyzing https://github.com/InfiBeyond/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/InfiBeyond/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/InfiBeyond/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/garylow2001/ip.git completed! -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/asdfghjkxd/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/asdfghjkxd/ip.git (master)... +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/geraldngjx/ip.git completed! +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wamps-jp/ip.git... -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:46 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/wamps-jp/ip.git to complete... -Sep 26, 2023 2:07:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/InfiBeyond/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/InfiBeyond/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/InfiBeyond/ip.git (master) completed! -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [216/478] Analyzing https://github.com/Bearypop/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/hyc17003/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Bearypop/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Bearypop/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/hyc17003/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/leontan2/ip.git completed! -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/hyc17003/ip.git (master) completed! -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/KumChaiYin/ip.git completed! -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/garylow2001/ip.git completed! +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/dickongwd/ip.git... -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [217/478] Analyzing https://github.com/sp4ce-cowboy/ip.git (master)... -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/dickongwd/ip.git to complete... -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ncmathan/ip.git (master)... +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wamps-jp/ip.git completed! +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/jacksonyuan256/ip.git... -Sep 26, 2023 2:07:58 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/leontan2/ip.git completed! +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/jacksonyuan256/ip.git to complete... -Sep 26, 2023 2:07:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/sp4ce-cowboy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/sp4ce-cowboy/ip.git (master)... -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wamps-jp/ip.git completed! -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/suryanshkushwaha/ip.git... -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ncmathan/ip.git (master)... +Sep 27, 2023 1:14:47 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ncmathan/ip.git (master) completed! +Sep 27, 2023 1:14:47 AM reposense.report.ReportGenerator analyzeRepos +INFO: [184/478] Analyzing https://github.com/Nid21cs/ip.git (master)... +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/suryanshkushwaha/ip.git to complete... -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner waitForCloneProcess +Sep 27, 2023 1:14:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Nid21cs/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Nid21cs/ip.git (master)... +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/dickongwd/ip.git completed! -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner spawnCloneProcess +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/wr1159/ip.git... -Sep 26, 2023 2:07:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:47 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wr1159/ip.git to complete... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jacksonyuan256/ip.git completed! +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Nauxe/ip.git... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Nauxe/ip.git to complete... +Sep 27, 2023 1:14:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Nid21cs/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Nid21cs/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Nid21cs/ip.git (master) completed! +Sep 27, 2023 1:14:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [185/478] Analyzing https://github.com/mingyu-wan/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wr1159/ip.git completed! +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/suryanshkushwaha/ip.git completed! +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/yyyaohhh/ip.git... +Sep 27, 2023 1:14:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mingyu-wan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mingyu-wan/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/zhanyang01/ip.git... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/yyyaohhh/ip.git to complete... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/zhanyang01/ip.git to complete... +Sep 27, 2023 1:14:48 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/asdfghjkxd/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Nauxe/ip.git completed! +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/czhiruo/ip.git... +Sep 27, 2023 1:14:48 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/czhiruo/ip.git to complete... +Sep 27, 2023 1:14:48 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/asdfghjkxd/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/asdfghjkxd/ip.git (master) completed! +Sep 27, 2023 1:14:48 AM reposense.report.ReportGenerator analyzeRepos +INFO: [186/478] Analyzing https://github.com/McNaBry/ip.git (master)... +Sep 27, 2023 1:14:48 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/McNaBry/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:48 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/McNaBry/ip.git (master)... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/yyyaohhh/ip.git completed! +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/zhanyang01/ip.git completed! +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/victorpengmx/ip.git... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/longnguyentan/ip.git... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/victorpengmx/ip.git to complete... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/longnguyentan/ip.git to complete... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/czhiruo/ip.git completed! +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Cikguseven/ip.git... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Cikguseven/ip.git to complete... +Sep 27, 2023 1:14:49 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mingyu-wan/ip.git (master)... +Sep 27, 2023 1:14:49 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mingyu-wan/ip.git (master)... +Sep 27, 2023 1:14:49 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mingyu-wan/ip.git (master) completed! +Sep 27, 2023 1:14:49 AM reposense.report.ReportGenerator analyzeRepos +INFO: [187/478] Analyzing https://github.com/miljyy/ip.git (master)... +Sep 27, 2023 1:14:49 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/miljyy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:49 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/miljyy/ip.git (master)... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/victorpengmx/ip.git completed! +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Eola-Z/ip.git... +Sep 27, 2023 1:14:49 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Eola-Z/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/McNaBry/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/longnguyentan/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lululwtv/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Cikguseven/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jibtaf/ip.git... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/lipwei1808/ip.git... +Sep 27, 2023 1:14:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/McNaBry/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/McNaBry/ip.git (master) completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/lipwei1808/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [188/478] Analyzing https://github.com/sushiyade/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jibtaf/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Mohammed-Faizzzz/ip.git... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Mohammed-Faizzzz/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/sushiyade/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/sushiyade/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/miljyy/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/miljyy/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/miljyy/ip.git (master) completed! +Sep 27, 2023 1:14:50 AM reposense.report.ReportGenerator analyzeRepos +INFO: [189/478] Analyzing https://github.com/ncduy0303/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ncduy0303/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:50 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ncduy0303/ip.git (master)... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Eola-Z/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/dylkaw/ip.git... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/dylkaw/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Mohammed-Faizzzz/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nikele2001/ip.git... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nikele2001/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/lipwei1808/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/DeltonCheng/ip.git... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/DeltonCheng/ip.git to complete... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jibtaf/ip.git completed! +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ChangruHenryQian/ip.git... +Sep 27, 2023 1:14:50 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ChangruHenryQian/ip.git to complete... +Sep 27, 2023 1:14:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ncduy0303/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ncduy0303/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ncduy0303/ip.git (master) completed! +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [190/478] Analyzing https://github.com/eyelessrhyme7/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/eyelessrhyme7/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/eyelessrhyme7/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/dylkaw/ip.git completed! +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/craigtonlian/ip.git... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/craigtonlian/ip.git to complete... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nikele2001/ip.git completed! +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/DeltonCheng/ip.git completed! +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/ruo-x/ip.git... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/ruo-x/ip.git to complete... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/iantsaii/ip.git... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/iantsaii/ip.git to complete... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ChangruHenryQian/ip.git completed! +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/wjacobw/ip.git... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/wjacobw/ip.git to complete... +Sep 27, 2023 1:14:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sushiyade/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/eyelessrhyme7/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/eyelessrhyme7/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/eyelessrhyme7/ip.git (master) completed! +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [191/478] Analyzing https://github.com/ruishanteo/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sushiyade/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sushiyade/ip.git (master) completed! +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruishanteo/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruishanteo/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator analyzeRepos +INFO: [192/478] Analyzing https://github.com/m1oojv/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/m1oojv/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:51 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/m1oojv/ip.git (master)... +Sep 27, 2023 1:14:51 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/craigtonlian/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/iantsaii/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/angkyakdifp/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/brein62/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/angkyakdifp/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/brein62/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/wjacobw/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nicrandomlee/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nicrandomlee/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/ruo-x/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Bryan-Goh/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Bryan-Goh/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ruishanteo/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ruishanteo/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ruishanteo/ip.git (master) completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/angkyakdifp/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [193/478] Analyzing https://github.com/Nixx162/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/kiatkat/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/kiatkat/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Nixx162/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Nixx162/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/brein62/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/MadLamprey/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/MadLamprey/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/m1oojv/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/m1oojv/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/m1oojv/ip.git (master) completed! +Sep 27, 2023 1:14:52 AM reposense.report.ReportGenerator analyzeRepos +INFO: [194/478] Analyzing https://github.com/Gabriel4357/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Gabriel4357/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Gabriel4357/ip.git (master)... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Bryan-Goh/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/xyT-T/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/xyT-T/ip.git to complete... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nicrandomlee/ip.git completed! +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jiakai-17/ip.git... +Sep 27, 2023 1:14:52 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jiakai-17/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/kiatkat/ip.git completed! +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nreHieW/ip.git... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nreHieW/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Nixx162/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Nixx162/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Nixx162/ip.git (master) completed! +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [195/478] Analyzing https://github.com/junhonglow/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/junhonglow/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/junhonglow/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Gabriel4357/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Gabriel4357/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Gabriel4357/ip.git (master) completed! +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [196/478] Analyzing https://github.com/mfjkri/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/MadLamprey/ip.git completed! +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/nathanielcalimag/ip.git... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/nathanielcalimag/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mfjkri/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mfjkri/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/xyT-T/ip.git completed! +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Saezenn/ip.git... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Saezenn/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jiakai-17/ip.git completed! +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/jellywaiyan/ip.git... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/jellywaiyan/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/junhonglow/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nreHieW/ip.git completed! +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/junhonglow/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/marquestye/ip.git... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/junhonglow/ip.git (master) completed! +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [197/478] Analyzing https://github.com/Badatprogrammiing/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/marquestye/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Badatprogrammiing/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Badatprogrammiing/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/nathanielcalimag/ip.git completed! +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Tang-Moyan/ip.git... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mfjkri/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Tang-Moyan/ip.git to complete... +Sep 27, 2023 1:14:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mfjkri/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mfjkri/ip.git (master) completed! +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator analyzeRepos +INFO: [198/478] Analyzing https://github.com/RoeReRe/ip.git (master)... +Sep 27, 2023 1:14:53 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/RoeReRe/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/RoeReRe/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Saezenn/ip.git completed! +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/DonovanJJ/ip.git... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/DonovanJJ/ip.git to complete... +Sep 27, 2023 1:14:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Badatprogrammiing/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Badatprogrammiing/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/RoeReRe/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Badatprogrammiing/ip.git (master) completed! +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/jellywaiyan/ip.git completed! +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [199/478] Analyzing https://github.com/nknguyenhc/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Sebtey/ip.git... +Sep 27, 2023 1:14:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/RoeReRe/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/RoeReRe/ip.git (master) completed! +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [200/478] Analyzing https://github.com/winson8222/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Sebtey/ip.git to complete... +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nknguyenhc/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nknguyenhc/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/marquestye/ip.git completed! +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/winson8222/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/winson8222/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/rionshocker/ip.git... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/rionshocker/ip.git to complete... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Tang-Moyan/ip.git completed! +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/tyouwei/ip.git... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/tyouwei/ip.git to complete... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/DonovanJJ/ip.git completed! +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/Blizzeracz/ip.git... +Sep 27, 2023 1:14:54 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/Blizzeracz/ip.git to complete... +Sep 27, 2023 1:14:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/winson8222/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/winson8222/ip.git (master)... +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/winson8222/ip.git (master) completed! +Sep 27, 2023 1:14:54 AM reposense.report.ReportGenerator analyzeRepos +INFO: [201/478] Analyzing https://github.com/HugeNoob/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Sebtey/ip.git completed! +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/HugeNoob/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/HugeNoob/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/tyouwei/ip.git completed! +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nknguyenhc/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/Blizzeracz/ip.git completed! +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nknguyenhc/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nknguyenhc/ip.git (master) completed! +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [202/478] Analyzing https://github.com/SimWPEric/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/rionshocker/ip.git completed! +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/SimWPEric/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/SimWPEric/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/HugeNoob/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/HugeNoob/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/HugeNoob/ip.git (master) completed! +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [203/478] Analyzing https://github.com/wujy28/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wujy28/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wujy28/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SimWPEric/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SimWPEric/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SimWPEric/ip.git (master) completed! +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [204/478] Analyzing https://github.com/lerxuann/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lerxuann/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lerxuann/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wujy28/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wujy28/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wujy28/ip.git (master) completed! +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator analyzeRepos +INFO: [205/478] Analyzing https://github.com/maj0-0/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/maj0-0/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/maj0-0/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lerxuann/ip.git (master)... +Sep 27, 2023 1:14:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lerxuann/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lerxuann/ip.git (master) completed! +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [206/478] Analyzing https://github.com/ruiyangzh/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruiyangzh/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruiyangzh/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/maj0-0/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/maj0-0/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/maj0-0/ip.git (master) completed! +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [207/478] Analyzing https://github.com/Weiennn/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Weiennn/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Weiennn/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ruiyangzh/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ruiyangzh/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ruiyangzh/ip.git (master) completed! +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [208/478] Analyzing https://github.com/qyaner/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/qyaner/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/qyaner/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/qyaner/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Weiennn/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/qyaner/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/qyaner/ip.git (master) completed! +Sep 27, 2023 1:14:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Weiennn/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [209/478] Analyzing https://github.com/Bombbird2001/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Weiennn/ip.git (master) completed! +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator analyzeRepos +INFO: [210/478] Analyzing https://github.com/andytoh1/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Bombbird2001/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Bombbird2001/ip.git (master)... +Sep 27, 2023 1:14:56 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/andytoh1/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/andytoh1/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/andytoh1/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/andytoh1/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/andytoh1/ip.git (master) completed! +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [211/478] Analyzing https://github.com/adammangzijun/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/adammangzijun/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/adammangzijun/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Bombbird2001/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Bombbird2001/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Bombbird2001/ip.git (master) completed! +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [212/478] Analyzing https://github.com/hyc17003/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/hyc17003/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/hyc17003/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/adammangzijun/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/adammangzijun/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/adammangzijun/ip.git (master) completed! +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [213/478] Analyzing https://github.com/Originalidk/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Originalidk/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Originalidk/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/hyc17003/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/hyc17003/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/hyc17003/ip.git (master) completed! +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [214/478] Analyzing https://github.com/Bearypop/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Bearypop/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Bearypop/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Originalidk/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Originalidk/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Originalidk/ip.git (master) completed! +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [215/478] Analyzing https://github.com/quzhetao01/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/quzhetao01/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/quzhetao01/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Bearypop/ip.git (master)... -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wr1159/ip.git to complete... -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jacksonyuan256/ip.git completed! -Sep 26, 2023 2:07:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Bearypop/ip.git (master)... -Sep 26, 2023 2:07:59 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Bearypop/ip.git (master) completed! -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Nauxe/ip.git... -Sep 26, 2023 2:07:59 PM reposense.report.ReportGenerator analyzeRepos -INFO: [218/478] Analyzing https://github.com/JasonLCY-Temp/ip.git (master)... -Sep 26, 2023 2:07:59 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Nauxe/ip.git to complete... -Sep 26, 2023 2:07:59 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator analyzeRepos +INFO: [216/478] Analyzing https://github.com/InfiBeyond/ip.git (master)... +Sep 27, 2023 1:14:57 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/InfiBeyond/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/InfiBeyond/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/quzhetao01/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/quzhetao01/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/quzhetao01/ip.git (master) completed! +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [217/478] Analyzing https://github.com/sp4ce-cowboy/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/InfiBeyond/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/InfiBeyond/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/sp4ce-cowboy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/sp4ce-cowboy/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/InfiBeyond/ip.git (master) completed! +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [218/478] Analyzing https://github.com/wjayee/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wjayee/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wjayee/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wjayee/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wjayee/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wjayee/ip.git (master) completed! +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [219/478] Analyzing https://github.com/JasonLCY-Temp/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/JasonLCY-Temp/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:07:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/JasonLCY-Temp/ip.git (master)... -Sep 26, 2023 2:07:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/sp4ce-cowboy/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/sp4ce-cowboy/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sp4ce-cowboy/ip.git (master) completed! -Sep 26, 2023 2:08:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [219/478] Analyzing https://github.com/vivienherq/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [220/478] Analyzing https://github.com/vivienherq/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/vivienherq/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/vivienherq/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wr1159/ip.git completed! -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/yyyaohhh/ip.git... -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Nauxe/ip.git completed! -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/yyyaohhh/ip.git to complete... -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/zhanyang01/ip.git... -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/zhanyang01/ip.git to complete... -Sep 26, 2023 2:08:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/JasonLCY-Temp/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:58 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/JasonLCY-Temp/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/JasonLCY-Temp/ip.git (master) completed! -Sep 26, 2023 2:08:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [220/478] Analyzing https://github.com/jamesebond/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator analyzeRepos +INFO: [221/478] Analyzing https://github.com/jamesebond/ip.git (master)... +Sep 27, 2023 1:14:58 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jamesebond/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:58 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jamesebond/ip.git (master)... -Sep 26, 2023 2:08:00 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/suryanshkushwaha/ip.git completed! -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/czhiruo/ip.git... -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/czhiruo/ip.git to complete... -Sep 26, 2023 2:08:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/vivienherq/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lululwtv/ip.git completed! -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/victorpengmx/ip.git... -Sep 26, 2023 2:08:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/vivienherq/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/vivienherq/ip.git (master) completed! -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/victorpengmx/ip.git to complete... -Sep 26, 2023 2:08:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [221/478] Analyzing https://github.com/jonyeokj/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [222/478] Analyzing https://github.com/jonyeokj/ip.git (master)... +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jonyeokj/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jonyeokj/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/zhanyang01/ip.git completed! -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/longnguyentan/ip.git... -Sep 26, 2023 2:08:01 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/longnguyentan/ip.git to complete... -Sep 26, 2023 2:08:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jamesebond/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jamesebond/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jamesebond/ip.git (master) completed! -Sep 26, 2023 2:08:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [222/478] Analyzing https://github.com/victorlaiyeeteng/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [223/478] Analyzing https://github.com/victorlaiyeeteng/ip.git (master)... +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/victorlaiyeeteng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/victorlaiyeeteng/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jonyeokj/ip.git (master)... -Sep 26, 2023 2:08:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jonyeokj/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jonyeokj/ip.git (master) completed! -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepos -INFO: [223/478] Analyzing https://github.com/wjayee/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wjayee/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wjayee/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/victorlaiyeeteng/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/czhiruo/ip.git completed! -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Cikguseven/ip.git... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Cikguseven/ip.git to complete... -Sep 26, 2023 2:08:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/victorlaiyeeteng/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/victorlaiyeeteng/ip.git (master) completed! -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos INFO: [224/478] Analyzing https://github.com/lyuanww/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lyuanww/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lyuanww/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/longnguyentan/ip.git completed! -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Eola-Z/ip.git... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Eola-Z/ip.git to complete... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/victorpengmx/ip.git completed! -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jibtaf/ip.git... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jibtaf/ip.git to complete... -Sep 26, 2023 2:08:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wjayee/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wjayee/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wjayee/ip.git (master) completed! -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/yyyaohhh/ip.git completed! -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/victorlaiyeeteng/ip.git (master)... +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/victorlaiyeeteng/ip.git (master)... +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/victorlaiyeeteng/ip.git (master) completed! +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos INFO: [225/478] Analyzing https://github.com/yongning0310/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/lipwei1808/ip.git... -Sep 26, 2023 2:08:02 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/lipwei1808/ip.git to complete... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yongning0310/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yongning0310/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lyuanww/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lyuanww/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lyuanww/ip.git (master) completed! -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator analyzeRepos -INFO: [226/478] Analyzing https://github.com/Cloud7050/ip.git (master)... -Sep 26, 2023 2:08:02 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Cloud7050/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Cloud7050/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Cikguseven/ip.git completed! -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Eola-Z/ip.git completed! -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Mohammed-Faizzzz/ip.git... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Mohammed-Faizzzz/ip.git to complete... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/dylkaw/ip.git... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/dylkaw/ip.git to complete... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jibtaf/ip.git completed! -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nikele2001/ip.git... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nikele2001/ip.git to complete... -Sep 26, 2023 2:08:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [226/478] Analyzing https://github.com/LoMaply/ip.git (master)... +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LoMaply/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:14:59 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LoMaply/ip.git (master)... +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yongning0310/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:14:59 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yongning0310/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yongning0310/ip.git (master) completed! -Sep 26, 2023 2:08:03 PM reposense.report.ReportGenerator analyzeRepos -INFO: [227/478] Analyzing https://github.com/tllshan/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:14:59 AM reposense.report.ReportGenerator analyzeRepos +INFO: [227/478] Analyzing https://github.com/Cloud7050/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Cloud7050/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Cloud7050/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LoMaply/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LoMaply/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LoMaply/ip.git (master) completed! +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [228/478] Analyzing https://github.com/tllshan/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tllshan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tllshan/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Cloud7050/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Cloud7050/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Cloud7050/ip.git (master) completed! -Sep 26, 2023 2:08:03 PM reposense.report.ReportGenerator analyzeRepos -INFO: [228/478] Analyzing https://github.com/LoMaply/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LoMaply/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LoMaply/ip.git (master)... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/lipwei1808/ip.git completed! -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/DeltonCheng/ip.git... -Sep 26, 2023 2:08:03 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/DeltonCheng/ip.git to complete... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Mohammed-Faizzzz/ip.git completed! -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ChangruHenryQian/ip.git... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ChangruHenryQian/ip.git to complete... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/dylkaw/ip.git completed! -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/craigtonlian/ip.git... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/craigtonlian/ip.git to complete... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tllshan/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nikele2001/ip.git completed! -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/ruo-x/ip.git... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tllshan/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tllshan/ip.git (master) completed! -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/ruo-x/ip.git to complete... -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos INFO: [229/478] Analyzing https://github.com/Gavino3o/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LoMaply/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Gavino3o/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Gavino3o/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LoMaply/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LoMaply/ip.git (master) completed! -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tllshan/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tllshan/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tllshan/ip.git (master) completed! +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos INFO: [230/478] Analyzing https://github.com/HollaG/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/HollaG/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/HollaG/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/DeltonCheng/ip.git completed! -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/iantsaii/ip.git... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/iantsaii/ip.git to complete... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Gavino3o/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Gavino3o/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Gavino3o/ip.git (master) completed! -Sep 26, 2023 2:08:04 PM reposense.report.ReportGenerator analyzeRepos -INFO: [231/478] Analyzing https://github.com/TehOPanas/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [231/478] Analyzing https://github.com/cheeggered/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cheeggered/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cheeggered/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/HollaG/ip.git (master)... -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/craigtonlian/ip.git completed! -Sep 26, 2023 2:08:04 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/wjacobw/ip.git... -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/TehOPanas/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/TehOPanas/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/wjacobw/ip.git to complete... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ChangruHenryQian/ip.git completed! -Sep 26, 2023 2:08:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:00 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/HollaG/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/angkyakdifp/ip.git... -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/HollaG/ip.git (master) completed! -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/angkyakdifp/ip.git to complete... -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [232/478] Analyzing https://github.com/cheeggered/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cheeggered/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cheeggered/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/ruo-x/ip.git completed! -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/brein62/ip.git... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/brein62/ip.git to complete... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/iantsaii/ip.git completed! -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nicrandomlee/ip.git... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nicrandomlee/ip.git to complete... -Sep 26, 2023 2:08:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/TehOPanas/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/cheeggered/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/TehOPanas/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/TehOPanas/ip.git (master) completed! -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/wjacobw/ip.git completed! -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [233/478] Analyzing https://github.com/xenosf/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Bryan-Goh/ip.git... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Bryan-Goh/ip.git to complete... -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator analyzeRepos +INFO: [232/478] Analyzing https://github.com/xenosf/ip.git (master)... +Sep 27, 2023 1:15:00 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/xenosf/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:00 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/xenosf/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/cheeggered/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cheeggered/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/angkyakdifp/ip.git completed! -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cheeggered/ip.git (master) completed! -Sep 26, 2023 2:08:05 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepos +INFO: [233/478] Analyzing https://github.com/TehOPanas/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/TehOPanas/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/TehOPanas/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/xenosf/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/xenosf/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/xenosf/ip.git (master) completed! +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepos INFO: [234/478] Analyzing https://github.com/neyapraveen/ip.git (master)... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/kiatkat/ip.git... -Sep 26, 2023 2:08:05 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/kiatkat/ip.git to complete... -Sep 26, 2023 2:08:06 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/neyapraveen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/neyapraveen/ip.git (master)... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/brein62/ip.git completed! -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/MadLamprey/ip.git... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/MadLamprey/ip.git to complete... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nicrandomlee/ip.git completed! -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/xyT-T/ip.git... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/xyT-T/ip.git to complete... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Bryan-Goh/ip.git completed! -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jiakai-17/ip.git... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jiakai-17/ip.git to complete... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/kiatkat/ip.git completed! -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nreHieW/ip.git... -Sep 26, 2023 2:08:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/neyapraveen/ip.git (master)... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/MadLamprey/ip.git completed! -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nreHieW/ip.git to complete... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/nathanielcalimag/ip.git... -Sep 26, 2023 2:08:06 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/nathanielcalimag/ip.git to complete... -Sep 26, 2023 2:08:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/neyapraveen/ip.git (master)... -Sep 26, 2023 2:08:06 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/neyapraveen/ip.git (master) completed! -Sep 26, 2023 2:08:06 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/TehOPanas/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/TehOPanas/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/TehOPanas/ip.git (master) completed! +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepos INFO: [235/478] Analyzing https://github.com/richiehx/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/richiehx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:07 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/richiehx/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/xenosf/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/xenosf/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/xenosf/ip.git (master) completed! -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/neyapraveen/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/neyapraveen/ip.git (master)... +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/neyapraveen/ip.git (master) completed! +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepos INFO: [236/478] Analyzing https://github.com/AlyssaPng/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AlyssaPng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:07 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:01 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AlyssaPng/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/richiehx/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:01 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/richiehx/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:01 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/richiehx/ip.git (master) completed! -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [237/478] Analyzing https://github.com/leezhengjing/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/xyT-T/ip.git completed! -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Saezenn/ip.git... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Saezenn/ip.git to complete... -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/leezhengjing/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:07 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/leezhengjing/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jiakai-17/ip.git completed! -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/jellywaiyan/ip.git... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/jellywaiyan/ip.git to complete... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nathanielcalimag/ip.git completed! -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/marquestye/ip.git... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/marquestye/ip.git to complete... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/nreHieW/ip.git completed! -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Tang-Moyan/ip.git... -Sep 26, 2023 2:08:07 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Tang-Moyan/ip.git to complete... -Sep 26, 2023 2:08:07 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AlyssaPng/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AlyssaPng/ip.git (master)... -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AlyssaPng/ip.git (master) completed! -Sep 26, 2023 2:08:07 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [238/478] Analyzing https://github.com/seantehds/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/seantehds/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/seantehds/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/leezhengjing/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/leezhengjing/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/leezhengjing/ip.git (master) completed! -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [239/478] Analyzing https://github.com/Singa-pirate/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Singa-pirate/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Singa-pirate/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Saezenn/ip.git completed! -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/DonovanJJ/ip.git... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/DonovanJJ/ip.git to complete... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/jellywaiyan/ip.git completed! -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Sebtey/ip.git... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Sebtey/ip.git to complete... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/marquestye/ip.git completed! -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/rionshocker/ip.git... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/rionshocker/ip.git to complete... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Tang-Moyan/ip.git completed! -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/tyouwei/ip.git... -Sep 26, 2023 2:08:08 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/tyouwei/ip.git to complete... -Sep 26, 2023 2:08:08 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Singa-pirate/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Singa-pirate/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Singa-pirate/ip.git (master) completed! -Sep 26, 2023 2:08:08 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/seantehds/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/seantehds/ip.git (master)... +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/seantehds/ip.git (master) completed! +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos INFO: [240/478] Analyzing https://github.com/songfangyl/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/songfangyl/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/songfangyl/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/seantehds/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/seantehds/ip.git (master) completed! -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator analyzeRepos -INFO: [241/478] Analyzing https://github.com/vansh284/ip.git (master)... -Sep 26, 2023 2:08:08 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/vansh284/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:08 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/vansh284/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/DonovanJJ/ip.git completed! -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/Blizzeracz/ip.git... -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/Blizzeracz/ip.git to complete... -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Sebtey/ip.git completed! -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/tyouwei/ip.git completed! -Sep 26, 2023 2:08:09 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Singa-pirate/ip.git (master)... +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Singa-pirate/ip.git (master)... +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Singa-pirate/ip.git (master) completed! +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator analyzeRepos +INFO: [241/478] Analyzing https://github.com/lihongguang00/ip.git (master)... +Sep 27, 2023 1:15:02 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lihongguang00/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:02 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lihongguang00/ip.git (master)... +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/songfangyl/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:02 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/songfangyl/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/vansh284/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/songfangyl/ip.git (master) completed! -Sep 26, 2023 2:08:09 PM reposense.report.ReportGenerator analyzeRepos -INFO: [242/478] Analyzing https://github.com/lihongguang00/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/rionshocker/ip.git completed! -Sep 26, 2023 2:08:09 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [242/478] Analyzing https://github.com/vansh284/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/vansh284/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/vansh284/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lihongguang00/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/vansh284/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lihongguang00/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lihongguang00/ip.git (master) completed! +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [243/478] Analyzing https://github.com/YeoBohShin/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/vansh284/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/vansh284/ip.git (master) completed! -Sep 26, 2023 2:08:09 PM reposense.report.ReportGenerator analyzeRepos -INFO: [243/478] Analyzing https://github.com/lunaroddity/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lunaroddity/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:09 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lunaroddity/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lihongguang00/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:09 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lihongguang00/ip.git (master)... -Sep 26, 2023 2:08:09 PM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/Blizzeracz/ip.git completed! -Sep 26, 2023 2:08:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lunaroddity/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lunaroddity/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lunaroddity/ip.git (master) completed! -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos INFO: [244/478] Analyzing https://github.com/shuenj/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/YeoBohShin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/YeoBohShin/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/shuenj/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:10 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/shuenj/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lihongguang00/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lihongguang00/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lihongguang00/ip.git (master) completed! -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator analyzeRepos -INFO: [245/478] Analyzing https://github.com/andrechuakj/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/andrechuakj/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:10 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/andrechuakj/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/YeoBohShin/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/YeoBohShin/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/YeoBohShin/ip.git (master) completed! +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [245/478] Analyzing https://github.com/lunaroddity/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lunaroddity/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lunaroddity/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/shuenj/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/shuenj/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/shuenj/ip.git (master) completed! -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator analyzeRepos -INFO: [246/478] Analyzing https://github.com/YeoBohShin/ip.git (master)... -Sep 26, 2023 2:08:10 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/YeoBohShin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:10 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/YeoBohShin/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/andrechuakj/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/andrechuakj/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/andrechuakj/ip.git (master) completed! -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [247/478] Analyzing https://github.com/WeeMingQing/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator analyzeRepos +INFO: [246/478] Analyzing https://github.com/WeeMingQing/ip.git (master)... +Sep 27, 2023 1:15:03 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/WeeMingQing/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:03 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/WeeMingQing/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/YeoBohShin/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/YeoBohShin/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/YeoBohShin/ip.git (master) completed! -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [248/478] Analyzing https://github.com/aliciamichellew/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/aliciamichellew/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/aliciamichellew/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:03 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lunaroddity/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lunaroddity/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lunaroddity/ip.git (master) completed! +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [247/478] Analyzing https://github.com/andrechuakj/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/andrechuakj/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/andrechuakj/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/WeeMingQing/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WeeMingQing/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WeeMingQing/ip.git (master) completed! -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [249/478] Analyzing https://github.com/samuelmui8/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [248/478] Analyzing https://github.com/samuelmui8/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/samuelmui8/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/samuelmui8/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aliciamichellew/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aliciamichellew/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aliciamichellew/ip.git (master) completed! -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [250/478] Analyzing https://github.com/antonTan96/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/andrechuakj/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/andrechuakj/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/andrechuakj/ip.git (master) completed! +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [249/478] Analyzing https://github.com/aliciamichellew/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/aliciamichellew/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/aliciamichellew/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/samuelmui8/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/antonTan96/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/antonTan96/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/samuelmui8/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/samuelmui8/ip.git (master) completed! -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator analyzeRepos -INFO: [251/478] Analyzing https://github.com/nabonitasen/ip.git (master)... -Sep 26, 2023 2:08:11 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nabonitasen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:11 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nabonitasen/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [250/478] Analyzing https://github.com/antonTan96/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/antonTan96/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/antonTan96/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/antonTan96/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/antonTan96/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/antonTan96/ip.git (master) completed! -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepos -INFO: [252/478] Analyzing https://github.com/owenyeo/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [251/478] Analyzing https://github.com/owenyeo/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/owenyeo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/owenyeo/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nabonitasen/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nabonitasen/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nabonitasen/ip.git (master) completed! -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepos -INFO: [253/478] Analyzing https://github.com/gongg21/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/gongg21/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/gongg21/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aliciamichellew/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aliciamichellew/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aliciamichellew/ip.git (master) completed! +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator analyzeRepos +INFO: [252/478] Analyzing https://github.com/pzl111/ip.git (master)... +Sep 27, 2023 1:15:04 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/pzl111/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:04 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/pzl111/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/owenyeo/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/gongg21/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/owenyeo/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/owenyeo/ip.git (master) completed! -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [253/478] Analyzing https://github.com/gongg21/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/gongg21/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/gongg21/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/pzl111/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/pzl111/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/pzl111/ip.git (master) completed! +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos INFO: [254/478] Analyzing https://github.com/erohsikivar/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/gongg21/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/gongg21/ip.git (master) completed! -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/erohsikivar/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/erohsikivar/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator analyzeRepos -INFO: [255/478] Analyzing https://github.com/teozern1/ip.git (master)... -Sep 26, 2023 2:08:12 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/teozern1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:12 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/teozern1/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/gongg21/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/gongg21/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/gongg21/ip.git (master) completed! +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [255/478] Analyzing https://github.com/nabonitasen/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nabonitasen/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nabonitasen/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/erohsikivar/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/erohsikivar/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/erohsikivar/ip.git (master) completed! -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [256/478] Analyzing https://github.com/nicleongyj/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [256/478] Analyzing https://github.com/teozern1/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/teozern1/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/teozern1/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nabonitasen/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nabonitasen/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nabonitasen/ip.git (master) completed! +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos +INFO: [257/478] Analyzing https://github.com/nicleongyj/ip.git (master)... +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nicleongyj/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nicleongyj/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/teozern1/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:05 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/teozern1/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/teozern1/ip.git (master) completed! -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [257/478] Analyzing https://github.com/pzl111/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/pzl111/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/pzl111/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicleongyj/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nicleongyj/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nicleongyj/ip.git (master) completed! -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator analyzeRepos INFO: [258/478] Analyzing https://github.com/Elijah5399/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:05 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Elijah5399/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:05 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Elijah5399/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/pzl111/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/pzl111/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/pzl111/ip.git (master) completed! -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicleongyj/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nicleongyj/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nicleongyj/ip.git (master) completed! +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos INFO: [259/478] Analyzing https://github.com/WinSheng1/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Elijah5399/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/WinSheng1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/WinSheng1/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Elijah5399/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Elijah5399/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Elijah5399/ip.git (master) completed! -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator analyzeRepos -INFO: [260/478] Analyzing https://github.com/Chen-Kuei/ip.git (master)... -Sep 26, 2023 2:08:13 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Chen-Kuei/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:13 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Chen-Kuei/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [260/478] Analyzing https://github.com/ryamgoh/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ryamgoh/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ryamgoh/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/WinSheng1/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WinSheng1/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Chen-Kuei/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WinSheng1/ip.git (master) completed! -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [261/478] Analyzing https://github.com/ryamgoh/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Chen-Kuei/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ryamgoh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ryamgoh/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Chen-Kuei/ip.git (master) completed! -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [262/478] Analyzing https://github.com/yucongkoo/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [261/478] Analyzing https://github.com/yucongkoo/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yucongkoo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yucongkoo/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ryamgoh/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ryamgoh/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ryamgoh/ip.git (master) completed! -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [263/478] Analyzing https://github.com/et-irl/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [262/478] Analyzing https://github.com/Chen-Kuei/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Chen-Kuei/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Chen-Kuei/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yucongkoo/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/et-irl/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/et-irl/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yucongkoo/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yucongkoo/ip.git (master) completed! -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [264/478] Analyzing https://github.com/marioalvaro/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/marioalvaro/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/marioalvaro/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/et-irl/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/et-irl/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/et-irl/ip.git (master) completed! -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator analyzeRepos -INFO: [265/478] Analyzing https://github.com/GSgiansen/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/GSgiansen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:14 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/GSgiansen/ip.git (master)... -Sep 26, 2023 2:08:14 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/marioalvaro/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/marioalvaro/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/marioalvaro/ip.git (master) completed! -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [266/478] Analyzing https://github.com/conradsoon/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [263/478] Analyzing https://github.com/conradsoon/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/conradsoon/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/conradsoon/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/GSgiansen/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Chen-Kuei/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Chen-Kuei/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Chen-Kuei/ip.git (master) completed! +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [264/478] Analyzing https://github.com/et-irl/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/et-irl/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/et-irl/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/conradsoon/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/conradsoon/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/conradsoon/ip.git (master) completed! -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [267/478] Analyzing https://github.com/Seonlo99/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/GSgiansen/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/GSgiansen/ip.git (master) completed! -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [268/478] Analyzing https://github.com/joel-foo/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator analyzeRepos +INFO: [265/478] Analyzing https://github.com/GSgiansen/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/GSgiansen/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:06 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/GSgiansen/ip.git (master)... +Sep 27, 2023 1:15:06 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/et-irl/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/et-irl/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/et-irl/ip.git (master) completed! +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [266/478] Analyzing https://github.com/Seonlo99/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Seonlo99/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Seonlo99/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/joel-foo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/joel-foo/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/GSgiansen/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Seonlo99/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/GSgiansen/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Seonlo99/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/GSgiansen/ip.git (master) completed! +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Seonlo99/ip.git (master) completed! -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [269/478] Analyzing https://github.com/tim-pipi/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [267/478] Analyzing https://github.com/marioalvaro/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [268/478] Analyzing https://github.com/tim-pipi/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tim-pipi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tim-pipi/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/joel-foo/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/joel-foo/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/joel-foo/ip.git (master) completed! -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator analyzeRepos -INFO: [270/478] Analyzing https://github.com/marcellaantania/ip.git (master)... -Sep 26, 2023 2:08:15 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/marcellaantania/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:15 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/marcellaantania/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/marioalvaro/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/marioalvaro/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tim-pipi/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tim-pipi/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tim-pipi/ip.git (master) completed! -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [271/478] Analyzing https://github.com/brendanneojw/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/brendanneojw/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/brendanneojw/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [269/478] Analyzing https://github.com/joel-foo/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/joel-foo/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/joel-foo/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/marioalvaro/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/marioalvaro/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/marioalvaro/ip.git (master) completed! +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator analyzeRepos +INFO: [270/478] Analyzing https://github.com/marcellaantania/ip.git (master)... +Sep 27, 2023 1:15:07 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/marcellaantania/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:07 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/marcellaantania/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/marcellaantania/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/joel-foo/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/marcellaantania/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/marcellaantania/ip.git (master) completed! -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [272/478] Analyzing https://github.com/seraphimstreets/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/seraphimstreets/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/seraphimstreets/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [271/478] Analyzing https://github.com/brendanneojw/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/joel-foo/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/joel-foo/ip.git (master) completed! +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [272/478] Analyzing https://github.com/li-rongzhi/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/brendanneojw/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/brendanneojw/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/li-rongzhi/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/li-rongzhi/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/brendanneojw/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/brendanneojw/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/brendanneojw/ip.git (master) completed! -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [273/478] Analyzing https://github.com/li-rongzhi/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/li-rongzhi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/li-rongzhi/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/seraphimstreets/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/seraphimstreets/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/seraphimstreets/ip.git (master) completed! -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator analyzeRepos -INFO: [274/478] Analyzing https://github.com/KamiliArsyad/ip.git (master)... -Sep 26, 2023 2:08:16 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/KamiliArsyad/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:16 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/KamiliArsyad/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [273/478] Analyzing https://github.com/seraphimstreets/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/seraphimstreets/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/seraphimstreets/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/li-rongzhi/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/li-rongzhi/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/li-rongzhi/ip.git (master) completed! -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [275/478] Analyzing https://github.com/trgao/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [274/478] Analyzing https://github.com/trgao/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/trgao/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/trgao/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/KamiliArsyad/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/KamiliArsyad/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/KamiliArsyad/ip.git (master) completed! -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [276/478] Analyzing https://github.com/lilozz2/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lilozz2/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lilozz2/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/seraphimstreets/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/seraphimstreets/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/seraphimstreets/ip.git (master) completed! +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [275/478] Analyzing https://github.com/KamiliArsyad/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/KamiliArsyad/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/KamiliArsyad/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/trgao/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/trgao/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/trgao/ip.git (master) completed! -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [277/478] Analyzing https://github.com/jean-cq/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jean-cq/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jean-cq/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [276/478] Analyzing https://github.com/lilozz2/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lilozz2/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lilozz2/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/KamiliArsyad/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/KamiliArsyad/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/KamiliArsyad/ip.git (master) completed! +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator analyzeRepos +INFO: [277/478] Analyzing https://github.com/jedkohjk/ip.git (master)... +Sep 27, 2023 1:15:08 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jedkohjk/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:08 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jedkohjk/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lilozz2/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lilozz2/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lilozz2/ip.git (master) completed! -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator analyzeRepos -INFO: [278/478] Analyzing https://github.com/jedkohjk/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jedkohjk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:17 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jedkohjk/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jean-cq/ip.git (master)... -Sep 26, 2023 2:08:17 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jean-cq/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jean-cq/ip.git (master) completed! -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepos -INFO: [279/478] Analyzing https://github.com/yytan25/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [278/478] Analyzing https://github.com/yytan25/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yytan25/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yytan25/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yytan25/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jedkohjk/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jedkohjk/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jedkohjk/ip.git (master) completed! +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [279/478] Analyzing https://github.com/jean-cq/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jean-cq/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jean-cq/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yytan25/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yytan25/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yytan25/ip.git (master) completed! -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos INFO: [280/478] Analyzing https://github.com/ryantzr1/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jedkohjk/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jedkohjk/ip.git (master) completed! -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepos -INFO: [281/478] Analyzing https://github.com/maypfv/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ryantzr1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ryantzr1/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/maypfv/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/maypfv/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jean-cq/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ryantzr1/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jean-cq/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ryantzr1/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jean-cq/ip.git (master) completed! +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ryantzr1/ip.git (master) completed! -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator analyzeRepos -INFO: [282/478] Analyzing https://github.com/TohLiYuan/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [281/478] Analyzing https://github.com/maypfv/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator analyzeRepos +INFO: [282/478] Analyzing https://github.com/JizhuoChen/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/JizhuoChen/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/JizhuoChen/ip.git (master)... +Sep 27, 2023 1:15:09 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/maypfv/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:09 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/maypfv/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/JizhuoChen/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/JizhuoChen/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/JizhuoChen/ip.git (master) completed! +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [283/478] Analyzing https://github.com/TohLiYuan/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/TohLiYuan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:18 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/TohLiYuan/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/maypfv/ip.git (master)... -Sep 26, 2023 2:08:18 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/maypfv/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/maypfv/ip.git (master) completed! -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [283/478] Analyzing https://github.com/JizhuoChen/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/JizhuoChen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/JizhuoChen/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [284/478] Analyzing https://github.com/ChongWeiJie29/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ChongWeiJie29/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ChongWeiJie29/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/TohLiYuan/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/TohLiYuan/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/TohLiYuan/ip.git (master) completed! -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [284/478] Analyzing https://github.com/Goh-Li-Ting/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/JizhuoChen/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [285/478] Analyzing https://github.com/Goh-Li-Ting/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Goh-Li-Ting/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Goh-Li-Ting/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/JizhuoChen/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/JizhuoChen/ip.git (master) completed! -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [285/478] Analyzing https://github.com/ChongWeiJie29/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ChongWeiJie29/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ChongWeiJie29/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ChongWeiJie29/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ChongWeiJie29/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ChongWeiJie29/ip.git (master) completed! -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos INFO: [286/478] Analyzing https://github.com/kristayeo/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Goh-Li-Ting/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/kristayeo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/kristayeo/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Goh-Li-Ting/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Goh-Li-Ting/ip.git (master) completed! -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator analyzeRepos -INFO: [287/478] Analyzing https://github.com/Chandan8186/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Chandan8186/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:19 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Chandan8186/ip.git (master)... -Sep 26, 2023 2:08:19 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/kristayeo/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/kristayeo/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Goh-Li-Ting/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/kristayeo/ip.git (master) completed! -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [288/478] Analyzing https://github.com/derekjxtan/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [287/478] Analyzing https://github.com/derekjxtan/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Goh-Li-Ting/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/derekjxtan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/derekjxtan/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Chandan8186/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Chandan8186/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Chandan8186/ip.git (master) completed! -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [289/478] Analyzing https://github.com/shashahchk/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Goh-Li-Ting/ip.git (master) completed! +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator analyzeRepos +INFO: [288/478] Analyzing https://github.com/shashahchk/ip.git (master)... +Sep 27, 2023 1:15:10 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/shashahchk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:10 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/shashahchk/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/derekjxtan/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/shashahchk/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/shashahchk/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/shashahchk/ip.git (master) completed! +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [289/478] Analyzing https://github.com/Chandan8186/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/derekjxtan/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/derekjxtan/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/derekjxtan/ip.git (master) completed! -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos INFO: [290/478] Analyzing https://github.com/alyssaongyx/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/shashahchk/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/shashahchk/ip.git (master) completed! -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [291/478] Analyzing https://github.com/Kailash201/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Chandan8186/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Chandan8186/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/alyssaongyx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/alyssaongyx/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Kailash201/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Kailash201/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Chandan8186/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Chandan8186/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Chandan8186/ip.git (master) completed! +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [291/478] Analyzing https://github.com/AndrewJanong/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/alyssaongyx/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AndrewJanong/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AndrewJanong/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/alyssaongyx/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/alyssaongyx/ip.git (master) completed! -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator analyzeRepos -INFO: [292/478] Analyzing https://github.com/lambraydon/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kailash201/ip.git (master)... -Sep 26, 2023 2:08:20 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lambraydon/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:20 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lambraydon/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kailash201/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kailash201/ip.git (master) completed! -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [293/478] Analyzing https://github.com/laurenlim2112/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [292/478] Analyzing https://github.com/laurenlim2112/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/laurenlim2112/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/laurenlim2112/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lambraydon/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lambraydon/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lambraydon/ip.git (master) completed! -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [294/478] Analyzing https://github.com/AndrewJanong/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AndrewJanong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AndrewJanong/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/laurenlim2112/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/laurenlim2112/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/laurenlim2112/ip.git (master) completed! -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [295/478] Analyzing https://github.com/peasantbird/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/peasantbird/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/peasantbird/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AndrewJanong/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AndrewJanong/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AndrewJanong/ip.git (master) completed! -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [296/478] Analyzing https://github.com/lshaoqin/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lshaoqin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lshaoqin/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/peasantbird/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/peasantbird/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/peasantbird/ip.git (master) completed! -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator analyzeRepos -INFO: [297/478] Analyzing https://github.com/chonguschonguschongus/ip.git (master)... -Sep 26, 2023 2:08:21 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/chonguschonguschongus/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:21 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/chonguschonguschongus/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lshaoqin/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lshaoqin/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lshaoqin/ip.git (master) completed! -Sep 26, 2023 2:08:22 PM reposense.report.ReportGenerator analyzeRepos -INFO: [298/478] Analyzing https://github.com/sk2001git/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [293/478] Analyzing https://github.com/Kailash201/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Kailash201/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Kailash201/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/laurenlim2112/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/laurenlim2112/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/laurenlim2112/ip.git (master) completed! +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator analyzeRepos +INFO: [294/478] Analyzing https://github.com/lambraydon/ip.git (master)... +Sep 27, 2023 1:15:11 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lambraydon/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:11 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lambraydon/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kailash201/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kailash201/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kailash201/ip.git (master) completed! +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [295/478] Analyzing https://github.com/sk2001git/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lambraydon/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lambraydon/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lambraydon/ip.git (master) completed! +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [296/478] Analyzing https://github.com/chonguschonguschongus/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sk2001git/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:22 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sk2001git/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/chonguschonguschongus/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/chonguschonguschongus/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/chonguschonguschongus/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/chonguschonguschongus/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/chonguschonguschongus/ip.git (master) completed! -Sep 26, 2023 2:08:22 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [297/478] Analyzing https://github.com/lshaoqin/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lshaoqin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lshaoqin/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sk2001git/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lshaoqin/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sk2001git/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sk2001git/ip.git (master) completed! +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos +INFO: [298/478] Analyzing https://github.com/peasantbird/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lshaoqin/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lshaoqin/ip.git (master) completed! +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator analyzeRepos INFO: [299/478] Analyzing https://github.com/WangCheng0116/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/peasantbird/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/peasantbird/ip.git (master)... +Sep 27, 2023 1:15:12 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/WangCheng0116/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:22 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:12 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/WangCheng0116/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sk2001git/ip.git (master)... -Sep 26, 2023 2:08:22 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/peasantbird/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/peasantbird/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/peasantbird/ip.git (master) completed! +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [300/478] Analyzing https://github.com/elaineshijie/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/elaineshijie/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/elaineshijie/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/WangCheng0116/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sk2001git/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sk2001git/ip.git (master) completed! -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WangCheng0116/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [300/478] Analyzing https://github.com/chewjh1234/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WangCheng0116/ip.git (master) completed! -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [301/478] Analyzing https://github.com/elaineshijie/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/elaineshijie/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/elaineshijie/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [301/478] Analyzing https://github.com/chewjh1234/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/chewjh1234/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/chewjh1234/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/elaineshijie/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chewjh1234/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/elaineshijie/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/elaineshijie/ip.git (master) completed! -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos INFO: [302/478] Analyzing https://github.com/lynnlow175/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lynnlow175/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lynnlow175/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chewjh1234/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/chewjh1234/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/chewjh1234/ip.git (master) completed! -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos INFO: [303/478] Analyzing https://github.com/lordidiot/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lynnlow175/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lynnlow175/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lordidiot/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lordidiot/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lynnlow175/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lynnlow175/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lynnlow175/ip.git (master) completed! -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos INFO: [304/478] Analyzing https://github.com/chew01/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lordidiot/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/chew01/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:13 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/chew01/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lordidiot/ip.git (master)... +Sep 27, 2023 1:15:13 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lordidiot/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lordidiot/ip.git (master) completed! -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator analyzeRepos -INFO: [305/478] Analyzing https://github.com/RSXIX/ip.git (master)... -Sep 26, 2023 2:08:23 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:13 AM reposense.report.ReportGenerator analyzeRepos +INFO: [305/478] Analyzing https://github.com/teozhengyang/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/teozhengyang/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/teozhengyang/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/chew01/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/chew01/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/chew01/ip.git (master) completed! +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [306/478] Analyzing https://github.com/RSXIX/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/RSXIX/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:23 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/RSXIX/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/RSXIX/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/chew01/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/RSXIX/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/RSXIX/ip.git (master) completed! -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [306/478] Analyzing https://github.com/zhonghan721/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/chew01/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/chew01/ip.git (master) completed! -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos INFO: [307/478] Analyzing https://github.com/juliusgambe/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/zhonghan721/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/zhonghan721/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/juliusgambe/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/juliusgambe/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhonghan721/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhonghan721/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhonghan721/ip.git (master) completed! -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [308/478] Analyzing https://github.com/WZWren/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/teozhengyang/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/teozhengyang/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/teozhengyang/ip.git (master) completed! +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [308/478] Analyzing https://github.com/zhonghan721/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/zhonghan721/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/zhonghan721/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/juliusgambe/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WZWren/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WZWren/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/juliusgambe/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/juliusgambe/ip.git (master) completed! -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator analyzeRepos -INFO: [309/478] Analyzing https://github.com/inezkok/ip.git (master)... -Sep 26, 2023 2:08:24 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [309/478] Analyzing https://github.com/WZWren/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WZWren/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WZWren/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhonghan721/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhonghan721/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhonghan721/ip.git (master) completed! +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator analyzeRepos +INFO: [310/478] Analyzing https://github.com/inezkok/ip.git (master)... +Sep 27, 2023 1:15:14 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/inezkok/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:24 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:14 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/inezkok/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/WZWren/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/WZWren/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/WZWren/ip.git (master) completed! -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/inezkok/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [310/478] Analyzing https://github.com/wasjoe1/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [311/478] Analyzing https://github.com/wasjoe1/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wasjoe1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wasjoe1/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/inezkok/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/inezkok/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/inezkok/ip.git (master) completed! -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [311/478] Analyzing https://github.com/teozhengyang/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/teozhengyang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/teozhengyang/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [312/478] Analyzing https://github.com/kokrui/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kokrui/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kokrui/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/kokrui/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/kokrui/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/kokrui/ip.git (master) completed! +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [313/478] Analyzing https://github.com/jinyang628/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wasjoe1/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wasjoe1/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wasjoe1/ip.git (master) completed! -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator analyzeRepos -INFO: [312/478] Analyzing https://github.com/jinyang628/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jinyang628/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:25 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jinyang628/ip.git (master)... -Sep 26, 2023 2:08:25 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/teozhengyang/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/teozhengyang/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/teozhengyang/ip.git (master) completed! -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [313/478] Analyzing https://github.com/nananakx-x/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wasjoe1/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wasjoe1/ip.git (master) completed! +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [314/478] Analyzing https://github.com/nananakx-x/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nananakx-x/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nananakx-x/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jinyang628/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jinyang628/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jinyang628/ip.git (master) completed! -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [314/478] Analyzing https://github.com/AnnabelTing/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AnnabelTing/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AnnabelTing/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nananakx-x/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nananakx-x/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nananakx-x/ip.git (master) completed! -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos INFO: [315/478] Analyzing https://github.com/timetraveller-123/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AnnabelTing/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/timetraveller-123/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/timetraveller-123/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AnnabelTing/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AnnabelTing/ip.git (master) completed! -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepos -INFO: [316/478] Analyzing https://github.com/kokrui/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kokrui/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kokrui/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nananakx-x/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nananakx-x/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nananakx-x/ip.git (master) completed! +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator analyzeRepos +INFO: [316/478] Analyzing https://github.com/AnnabelTing/ip.git (master)... +Sep 27, 2023 1:15:15 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AnnabelTing/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:15 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AnnabelTing/ip.git (master)... +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/timetraveller-123/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/timetraveller-123/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/timetraveller-123/ip.git (master) completed! -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [317/478] Analyzing https://github.com/Jweng88/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Jweng88/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Jweng88/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/kokrui/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/kokrui/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/kokrui/ip.git (master) completed! -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AnnabelTing/ip.git (master)... +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AnnabelTing/ip.git (master)... +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AnnabelTing/ip.git (master) completed! +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [318/478] Analyzing https://github.com/ylyma/ip.git (master)... -Sep 26, 2023 2:08:26 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ylyma/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:26 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ylyma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Jweng88/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Jweng88/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Jweng88/ip.git (master) completed! -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [319/478] Analyzing https://github.com/EricXiong420/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/EricXiong420/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/EricXiong420/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ylyma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ylyma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ylyma/ip.git (master) completed! -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [320/478] Analyzing https://github.com/jovkusuma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jovkusuma/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jovkusuma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jovkusuma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:16 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jovkusuma/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jovkusuma/ip.git (master) completed! -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator analyzeRepos INFO: [321/478] Analyzing https://github.com/bhnuka/ip.git (master)... -Sep 26, 2023 2:08:27 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:16 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/bhnuka/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:27 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:16 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/bhnuka/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/EricXiong420/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/EricXiong420/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/EricXiong420/ip.git (master) completed! -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos INFO: [322/478] Analyzing https://github.com/J-hta-n/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/J-hta-n/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:28 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/J-hta-n/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/bhnuka/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/bhnuka/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/bhnuka/ip.git (master) completed! -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos INFO: [323/478] Analyzing https://github.com/Tim-Siu/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Tim-Siu/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:28 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Tim-Siu/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/J-hta-n/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/J-hta-n/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/J-hta-n/ip.git (master) completed! -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos INFO: [324/478] Analyzing https://github.com/yarnmengnus/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yarnmengnus/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:28 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yarnmengnus/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Tim-Siu/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Tim-Siu/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Tim-Siu/ip.git (master) completed! -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos INFO: [325/478] Analyzing https://github.com/sopa301/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sopa301/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:28 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sopa301/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yarnmengnus/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:17 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yarnmengnus/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yarnmengnus/ip.git (master) completed! -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator analyzeRepos INFO: [326/478] Analyzing https://github.com/ngeeyonglim/ip.git (master)... -Sep 26, 2023 2:08:28 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:17 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ngeeyonglim/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:17 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ngeeyonglim/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/sopa301/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/sopa301/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sopa301/ip.git (master) completed! -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [327/478] Analyzing https://github.com/ItsTYtan/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ItsTYtan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ItsTYtan/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ngeeyonglim/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ngeeyonglim/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ngeeyonglim/ip.git (master) completed! -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [328/478] Analyzing https://github.com/javinchua/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/javinchua/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/javinchua/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ItsTYtan/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ItsTYtan/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ItsTYtan/ip.git (master) completed! -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepos -INFO: [329/478] Analyzing https://github.com/amosting/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [329/478] Analyzing https://github.com/LicongHuang/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LicongHuang/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LicongHuang/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LicongHuang/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LicongHuang/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LicongHuang/ip.git (master) completed! +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos +INFO: [330/478] Analyzing https://github.com/amosting/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/amosting/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:29 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/amosting/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/javinchua/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/amosting/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/javinchua/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/amosting/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/javinchua/ip.git (master) completed! -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/amosting/ip.git (master) completed! -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepos -INFO: [330/478] Analyzing https://github.com/LicongHuang/ip.git (master)... -Sep 26, 2023 2:08:29 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [331/478] Analyzing https://github.com/Cleon2/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LicongHuang/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LicongHuang/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Cleon2/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Cleon2/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LicongHuang/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LicongHuang/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LicongHuang/ip.git (master) completed! -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/amosting/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/amosting/ip.git (master)... +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/amosting/ip.git (master) completed! +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator analyzeRepos INFO: [332/478] Analyzing https://github.com/ketweeen/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:18 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ketweeen/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:18 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ketweeen/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Cleon2/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Cleon2/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Cleon2/ip.git (master) completed! -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos INFO: [333/478] Analyzing https://github.com/sudarshan2401/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sudarshan2401/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sudarshan2401/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ketweeen/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ketweeen/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ketweeen/ip.git (master) completed! -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepos -INFO: [334/478] Analyzing https://github.com/wui-hong/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [334/478] Analyzing https://github.com/flexibo/ip.git (master)... +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/flexibo/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/flexibo/ip.git (master)... +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/sudarshan2401/ip.git (master)... +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/sudarshan2401/ip.git (master)... +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/sudarshan2401/ip.git (master) completed! +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [335/478] Analyzing https://github.com/wui-hong/ip.git (master)... +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wui-hong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:30 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wui-hong/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wui-hong/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wui-hong/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wui-hong/ip.git (master) completed! -Sep 26, 2023 2:08:30 PM reposense.report.ReportGenerator analyzeRepos -INFO: [335/478] Analyzing https://github.com/flexibo/ip.git (master)... -Sep 26, 2023 2:08:30 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/sudarshan2401/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/sudarshan2401/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/sudarshan2401/ip.git (master) completed! -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos INFO: [336/478] Analyzing https://github.com/Respirayson/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/flexibo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/flexibo/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Respirayson/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Respirayson/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Respirayson/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Respirayson/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Respirayson/ip.git (master) completed! -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator analyzeRepos -INFO: [337/478] Analyzing https://github.com/shishirbychapur/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/shishirbychapur/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/shishirbychapur/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/flexibo/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:19 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/flexibo/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/flexibo/ip.git (master) completed! -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator analyzeRepos +INFO: [337/478] Analyzing https://github.com/shishirbychapur/ip.git (master)... +Sep 27, 2023 1:15:19 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/shishirbychapur/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:19 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/shishirbychapur/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Respirayson/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Respirayson/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Respirayson/ip.git (master) completed! +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos INFO: [338/478] Analyzing https://github.com/sunzihan23/ip.git (master)... -Sep 26, 2023 2:08:31 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/sunzihan23/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:31 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/sunzihan23/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/shishirbychapur/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/shishirbychapur/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/shishirbychapur/ip.git (master) completed! -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos INFO: [339/478] Analyzing https://github.com/wj331/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wj331/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wj331/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/sunzihan23/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/sunzihan23/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/sunzihan23/ip.git (master) completed! -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepos -INFO: [340/478] Analyzing https://github.com/tjch-o/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tjch-o/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tjch-o/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [340/478] Analyzing https://github.com/Chrainx/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Chrainx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Chrainx/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wj331/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wj331/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wj331/ip.git (master) completed! -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepos -INFO: [341/478] Analyzing https://github.com/Chrainx/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tjch-o/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tjch-o/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tjch-o/ip.git (master) completed! -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator analyzeRepos -INFO: [342/478] Analyzing https://github.com/mamayuan/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Chrainx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Chrainx/ip.git (master)... -Sep 26, 2023 2:08:32 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mamayuan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:32 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mamayuan/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [341/478] Analyzing https://github.com/tjch-o/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tjch-o/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tjch-o/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Chrainx/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:20 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Chrainx/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mamayuan/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Chrainx/ip.git (master) completed! -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator analyzeRepos +INFO: [342/478] Analyzing https://github.com/mamayuan/ip.git (master)... +Sep 27, 2023 1:15:20 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mamayuan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:20 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mamayuan/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tjch-o/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tjch-o/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tjch-o/ip.git (master) completed! +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos INFO: [343/478] Analyzing https://github.com/licongshen12/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mamayuan/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mamayuan/ip.git (master) completed! -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/licongshen12/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:33 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/licongshen12/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mamayuan/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mamayuan/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mamayuan/ip.git (master) completed! +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos INFO: [344/478] Analyzing https://github.com/ong-wei-hong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ong-wei-hong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:33 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ong-wei-hong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/licongshen12/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/licongshen12/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/licongshen12/ip.git (master) completed! -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos INFO: [345/478] Analyzing https://github.com/tanboonkhong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ong-wei-hong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tanboonkhong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:33 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tanboonkhong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ong-wei-hong/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ong-wei-hong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ong-wei-hong/ip.git (master) completed! -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepos -INFO: [346/478] Analyzing https://github.com/cbj252/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cbj252/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:33 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cbj252/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [346/478] Analyzing https://github.com/AlfredBeNoel/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tanboonkhong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AlfredBeNoel/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AlfredBeNoel/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tanboonkhong/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tanboonkhong/ip.git (master) completed! -Sep 26, 2023 2:08:33 PM reposense.report.ReportGenerator analyzeRepos -INFO: [347/478] Analyzing https://github.com/AlfredBeNoel/ip.git (master)... -Sep 26, 2023 2:08:33 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos +INFO: [347/478] Analyzing https://github.com/cbj252/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cbj252/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cbj252/ip.git (master)... +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/cbj252/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AlfredBeNoel/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AlfredBeNoel/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:21 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cbj252/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cbj252/ip.git (master) completed! -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator analyzeRepos INFO: [348/478] Analyzing https://github.com/keaganpzh/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:21 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/keaganpzh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:21 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/keaganpzh/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AlfredBeNoel/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AlfredBeNoel/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AlfredBeNoel/ip.git (master) completed! -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos INFO: [349/478] Analyzing https://github.com/ElginTZM/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ElginTZM/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ElginTZM/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/keaganpzh/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/keaganpzh/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/keaganpzh/ip.git (master) completed! -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepos -INFO: [350/478] Analyzing https://github.com/cmHuang777/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/cmHuang777/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/cmHuang777/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ElginTZM/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ElginTZM/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ElginTZM/ip.git (master) completed! -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator analyzeRepos -INFO: [351/478] Analyzing https://github.com/xxiaoweii/ip.git (master)... -Sep 26, 2023 2:08:34 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/xxiaoweii/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:34 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/xxiaoweii/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [350/478] Analyzing https://github.com/cmHuang777/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/keaganpzh/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/cmHuang777/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/cmHuang777/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/keaganpzh/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/keaganpzh/ip.git (master) completed! +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [351/478] Analyzing https://github.com/LimJH2002/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/LimJH2002/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/LimJH2002/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/LimJH2002/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/cmHuang777/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/LimJH2002/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/LimJH2002/ip.git (master) completed! +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [352/478] Analyzing https://github.com/xxiaoweii/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cmHuang777/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cmHuang777/ip.git (master) completed! -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [352/478] Analyzing https://github.com/rayyan35p/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator analyzeRepos +INFO: [353/478] Analyzing https://github.com/rayyan35p/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/xxiaoweii/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/xxiaoweii/ip.git (master)... +Sep 27, 2023 1:15:22 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/rayyan35p/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:22 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/rayyan35p/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/xxiaoweii/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/xxiaoweii/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/xxiaoweii/ip.git (master) completed! -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [353/478] Analyzing https://github.com/WeeeHung/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/WeeeHung/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/WeeeHung/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [354/478] Analyzing https://github.com/dhruvir29/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dhruvir29/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dhruvir29/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/rayyan35p/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/rayyan35p/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/rayyan35p/ip.git (master) completed! -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator analyzeRepos -INFO: [354/478] Analyzing https://github.com/LimJH2002/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/LimJH2002/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:35 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/LimJH2002/ip.git (master)... -Sep 26, 2023 2:08:35 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/WeeeHung/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/WeeeHung/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/WeeeHung/ip.git (master) completed! -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [355/478] Analyzing https://github.com/dhruvir29/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dhruvir29/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dhruvir29/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/LimJH2002/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/LimJH2002/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/LimJH2002/ip.git (master) completed! -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [356/478] Analyzing https://github.com/LinWanLeii/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [355/478] Analyzing https://github.com/LinWanLeii/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/LinWanLeii/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/LinWanLeii/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/dhruvir29/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dhruvir29/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dhruvir29/ip.git (master) completed! -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [357/478] Analyzing https://github.com/Song-Mengfei/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Song-Mengfei/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Song-Mengfei/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [356/478] Analyzing https://github.com/WeeeHung/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/LinWanLeii/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/LinWanLeii/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/LinWanLeii/ip.git (master) completed! -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepos -INFO: [358/478] Analyzing https://github.com/jinyuan0425/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jinyuan0425/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jinyuan0425/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/WeeeHung/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/WeeeHung/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [357/478] Analyzing https://github.com/Song-Mengfei/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Song-Mengfei/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:23 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Song-Mengfei/ip.git (master)... +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Song-Mengfei/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:23 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Song-Mengfei/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Song-Mengfei/ip.git (master) completed! -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:23 AM reposense.report.ReportGenerator analyzeRepos +INFO: [358/478] Analyzing https://github.com/jinyuan0425/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jinyuan0425/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jinyuan0425/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/WeeeHung/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/WeeeHung/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/WeeeHung/ip.git (master) completed! +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos INFO: [359/478] Analyzing https://github.com/tiif/ip.git (master)... -Sep 26, 2023 2:08:36 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tiif/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:36 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tiif/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jinyuan0425/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jinyuan0425/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jinyuan0425/ip.git (master) completed! -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [360/478] Analyzing https://github.com/papataco14/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/papataco14/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/papataco14/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [360/478] Analyzing https://github.com/nicholascher/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nicholascher/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nicholascher/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tiif/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tiif/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tiif/ip.git (master) completed! -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos INFO: [361/478] Analyzing https://github.com/hcs1203/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/hcs1203/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/hcs1203/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/hcs1203/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/hcs1203/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/hcs1203/ip.git (master) completed! -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [362/478] Analyzing https://github.com/KamJiaYue/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/KamJiaYue/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/KamJiaYue/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/papataco14/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/papataco14/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/papataco14/ip.git (master) completed! -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [362/478] Analyzing https://github.com/papataco14/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/papataco14/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/papataco14/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicholascher/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nicholascher/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nicholascher/ip.git (master) completed! +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos INFO: [363/478] Analyzing https://github.com/PohSayKeong/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/PohSayKeong/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/PohSayKeong/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/PohSayKeong/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/PohSayKeong/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/PohSayKeong/ip.git (master) completed! -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator analyzeRepos -INFO: [364/478] Analyzing https://github.com/nicholascher/ip.git (master)... -Sep 26, 2023 2:08:37 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nicholascher/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:37 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nicholascher/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/KamJiaYue/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/KamJiaYue/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/KamJiaYue/ip.git (master) completed! -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator analyzeRepos -INFO: [365/478] Analyzing https://github.com/NereusWB922/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/papataco14/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/papataco14/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/papataco14/ip.git (master) completed! +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [364/478] Analyzing https://github.com/NereusWB922/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/NereusWB922/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:38 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/NereusWB922/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicholascher/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nicholascher/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nicholascher/ip.git (master) completed! -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator analyzeRepos -INFO: [366/478] Analyzing https://github.com/ivyy-poison/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/PohSayKeong/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/PohSayKeong/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/PohSayKeong/ip.git (master) completed! +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator analyzeRepos +INFO: [365/478] Analyzing https://github.com/ivyy-poison/ip.git (master)... +Sep 27, 2023 1:15:24 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ivyy-poison/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:38 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:24 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ivyy-poison/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ivyy-poison/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ivyy-poison/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ivyy-poison/ip.git (master) completed! -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator analyzeRepos -INFO: [367/478] Analyzing https://github.com/jacobcuison/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jacobcuison/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:38 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jacobcuison/ip.git (master)... -Sep 26, 2023 2:08:38 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [366/478] Analyzing https://github.com/KamJiaYue/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/KamJiaYue/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/KamJiaYue/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/NereusWB922/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/NereusWB922/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/NereusWB922/ip.git (master) completed! -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [368/478] Analyzing https://github.com/ji-just-ji/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ji-just-ji/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ji-just-ji/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [367/478] Analyzing https://github.com/jacobcuison/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jacobcuison/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jacobcuison/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jacobcuison/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jacobcuison/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jacobcuison/ip.git (master) completed! -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos +INFO: [368/478] Analyzing https://github.com/ji-just-ji/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ji-just-ji/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ji-just-ji/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/KamJiaYue/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/KamJiaYue/ip.git (master)... +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/KamJiaYue/ip.git (master) completed! +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator analyzeRepos INFO: [369/478] Analyzing https://github.com/rocketninja7/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:25 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/rocketninja7/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:25 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/rocketninja7/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ji-just-ji/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/rocketninja7/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ji-just-ji/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ji-just-ji/ip.git (master) completed! -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepos -INFO: [370/478] Analyzing https://github.com/kohkaijie/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ji-just-ji/ip.git (master)... +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/rocketninja7/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/rocketninja7/ip.git (master) completed! -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos +INFO: [370/478] Analyzing https://github.com/kohkaijie/ip.git (master)... +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ji-just-ji/ip.git (master)... +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ji-just-ji/ip.git (master) completed! +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos INFO: [371/478] Analyzing https://github.com/zekone/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/kohkaijie/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/kohkaijie/ip.git (master)... -Sep 26, 2023 2:08:39 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/zekone/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:39 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/zekone/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/zekone/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zekone/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/kohkaijie/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zekone/ip.git (master)... +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/zekone/ip.git (master) completed! -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos INFO: [372/478] Analyzing https://github.com/markgcera/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/markgcera/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/markgcera/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/kohkaijie/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/kohkaijie/ip.git (master) completed! -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos INFO: [373/478] Analyzing https://github.com/PearlynnT/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/PearlynnT/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/PearlynnT/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/markgcera/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/markgcera/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/markgcera/ip.git (master) completed! -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos INFO: [374/478] Analyzing https://github.com/StevenLiudw/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/PearlynnT/ip.git (master)... +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/StevenLiudw/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:26 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/StevenLiudw/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/PearlynnT/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:26 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/PearlynnT/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/PearlynnT/ip.git (master) completed! -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:26 AM reposense.report.ReportGenerator analyzeRepos INFO: [375/478] Analyzing https://github.com/TeeRenJing/ip.git (master)... -Sep 26, 2023 2:08:40 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/TeeRenJing/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:40 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/TeeRenJing/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/TeeRenJing/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/StevenLiudw/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/TeeRenJing/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/TeeRenJing/ip.git (master) completed! -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [376/478] Analyzing https://github.com/dloh2236/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [376/478] Analyzing https://github.com/mounilsankar/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/mounilsankar/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/mounilsankar/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/StevenLiudw/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/StevenLiudw/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/StevenLiudw/ip.git (master) completed! +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [377/478] Analyzing https://github.com/dloh2236/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dloh2236/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dloh2236/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/StevenLiudw/ip.git (master) completed! -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [377/478] Analyzing https://github.com/zannloo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/mounilsankar/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/mounilsankar/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/mounilsankar/ip.git (master) completed! +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [378/478] Analyzing https://github.com/zannloo/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/zannloo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/zannloo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/zannloo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/zannloo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/zannloo/ip.git (master) completed! -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [378/478] Analyzing https://github.com/junnengsoo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/dloh2236/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [379/478] Analyzing https://github.com/junnengsoo/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/junnengsoo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/junnengsoo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/dloh2236/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/junnengsoo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:27 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dloh2236/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dloh2236/ip.git (master) completed! -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [379/478] Analyzing https://github.com/Kokseng1/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator analyzeRepos +INFO: [380/478] Analyzing https://github.com/freshcabbage123/ip.git (master)... +Sep 27, 2023 1:15:27 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/freshcabbage123/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:27 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/freshcabbage123/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/junnengsoo/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/junnengsoo/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/junnengsoo/ip.git (master) completed! -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator analyzeRepos -INFO: [380/478] Analyzing https://github.com/mounilsankar/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [381/478] Analyzing https://github.com/Kokseng1/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/freshcabbage123/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Kokseng1/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Kokseng1/ip.git (master)... -Sep 26, 2023 2:08:41 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/mounilsankar/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:41 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/mounilsankar/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kokseng1/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kokseng1/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kokseng1/ip.git (master) completed! -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepos -INFO: [381/478] Analyzing https://github.com/freshcabbage123/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/freshcabbage123/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/freshcabbage123/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/mounilsankar/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/mounilsankar/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/mounilsankar/ip.git (master) completed! -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/freshcabbage123/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/freshcabbage123/ip.git (master) completed! +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos INFO: [382/478] Analyzing https://github.com/itsNatTan/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/itsNatTan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/itsNatTan/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/freshcabbage123/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/freshcabbage123/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/freshcabbage123/ip.git (master) completed! -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepos -INFO: [383/478] Analyzing https://github.com/ZD292/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ZD292/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ZD292/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kokseng1/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kokseng1/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kokseng1/ip.git (master) completed! +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [383/478] Analyzing https://github.com/alientian/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/alientian/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/alientian/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/itsNatTan/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/itsNatTan/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/itsNatTan/ip.git (master) completed! -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator analyzeRepos -INFO: [384/478] Analyzing https://github.com/alientian/ip.git (master)... -Sep 26, 2023 2:08:42 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/alientian/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:42 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/alientian/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [384/478] Analyzing https://github.com/ZD292/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ZD292/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ZD292/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/alientian/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/alientian/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/alientian/ip.git (master) completed! -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator analyzeRepos -INFO: [385/478] Analyzing https://github.com/frrrrry/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/frrrrry/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:43 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/frrrrry/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [385/478] Analyzing https://github.com/tjingsheng/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tjingsheng/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tjingsheng/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ZD292/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:28 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ZD292/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ZD292/ip.git (master) completed! -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator analyzeRepos -INFO: [386/478] Analyzing https://github.com/tjingsheng/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tjingsheng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:43 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tjingsheng/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator analyzeRepos +INFO: [386/478] Analyzing https://github.com/frrrrry/ip.git (master)... +Sep 27, 2023 1:15:28 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/frrrrry/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:28 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/frrrrry/ip.git (master)... +Sep 27, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/frrrrry/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/frrrrry/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/frrrrry/ip.git (master) completed! -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator analyzeRepos -INFO: [387/478] Analyzing https://github.com/wanghejin/ip.git (master)... -Sep 26, 2023 2:08:43 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wanghejin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:43 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wanghejin/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/wanghejin/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/wanghejin/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/wanghejin/ip.git (master) completed! -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [388/478] Analyzing https://github.com/MagnificentCreature/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [387/478] Analyzing https://github.com/MagnificentCreature/ip.git (master)... +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/MagnificentCreature/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/MagnificentCreature/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tjingsheng/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tjingsheng/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tjingsheng/ip.git (master) completed! -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [389/478] Analyzing https://github.com/andrefoo/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/andrefoo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/andrefoo/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [388/478] Analyzing https://github.com/wanghejin/ip.git (master)... +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wanghejin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wanghejin/ip.git (master)... +Sep 27, 2023 1:15:29 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/MagnificentCreature/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:29 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/MagnificentCreature/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/MagnificentCreature/ip.git (master) completed! -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [390/478] Analyzing https://github.com/tohpinren/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tohpinren/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tohpinren/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator analyzeRepos +INFO: [389/478] Analyzing https://github.com/andrefoo/ip.git (master)... +Sep 27, 2023 1:15:29 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/andrefoo/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:29 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/andrefoo/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/wanghejin/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/wanghejin/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/wanghejin/ip.git (master) completed! +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [390/478] Analyzing https://github.com/XihuaZ/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/XihuaZ/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/XihuaZ/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/andrefoo/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/andrefoo/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/andrefoo/ip.git (master) completed! -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator analyzeRepos -INFO: [391/478] Analyzing https://github.com/XihuaZ/ip.git (master)... -Sep 26, 2023 2:08:44 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/XihuaZ/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:44 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/XihuaZ/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tohpinren/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/tohpinren/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/tohpinren/ip.git (master) completed! -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator analyzeRepos -INFO: [392/478] Analyzing https://github.com/xavierpok/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/xavierpok/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/xavierpok/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [391/478] Analyzing https://github.com/tohpinren/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tohpinren/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tohpinren/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/XihuaZ/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/XihuaZ/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/XihuaZ/ip.git (master) completed! -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator analyzeRepos -INFO: [393/478] Analyzing https://github.com/SungMatt/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [392/478] Analyzing https://github.com/SungMatt/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/SungMatt/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/SungMatt/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tohpinren/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/tohpinren/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/tohpinren/ip.git (master) completed! +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator analyzeRepos +INFO: [393/478] Analyzing https://github.com/xavierpok/ip.git (master)... +Sep 27, 2023 1:15:30 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/xavierpok/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:30 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/xavierpok/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/xavierpok/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/xavierpok/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/xavierpok/ip.git (master) completed! -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [394/478] Analyzing https://github.com/bkjwjason/ip.git (master)... -Sep 26, 2023 2:08:45 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/bkjwjason/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:45 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/bkjwjason/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/bkjwjason/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/SungMatt/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/bkjwjason/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/bkjwjason/ip.git (master) completed! -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [395/478] Analyzing https://github.com/Choonyan02/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Choonyan02/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Choonyan02/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/SungMatt/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/SungMatt/ip.git (master) completed! +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [396/478] Analyzing https://github.com/jianyangg/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jianyangg/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jianyangg/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Choonyan02/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/SungMatt/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Choonyan02/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Choonyan02/ip.git (master) completed! -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepos -INFO: [396/478] Analyzing https://github.com/aarontxz/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [397/478] Analyzing https://github.com/aarontxz/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/aarontxz/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/aarontxz/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/SungMatt/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/SungMatt/ip.git (master) completed! -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepos -INFO: [397/478] Analyzing https://github.com/jianyangg/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jianyangg/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jianyangg/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/aarontxz/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/aarontxz/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/aarontxz/ip.git (master) completed! -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator analyzeRepos -INFO: [398/478] Analyzing https://github.com/tayian/ip.git (master)... -Sep 26, 2023 2:08:46 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/tayian/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:46 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/tayian/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/jianyangg/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jianyangg/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jianyangg/ip.git (master) completed! -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos +INFO: [398/478] Analyzing https://github.com/tayian/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/tayian/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/tayian/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/aarontxz/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/aarontxz/ip.git (master)... +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/aarontxz/ip.git (master) completed! +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator analyzeRepos INFO: [399/478] Analyzing https://github.com/wnchan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:31 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wnchan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:47 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:31 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wnchan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/tayian/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tayian/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tayian/ip.git (master) completed! -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos INFO: [400/478] Analyzing https://github.com/cyaoxuan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/cyaoxuan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:47 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/cyaoxuan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wnchan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wnchan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wnchan/ip.git (master) completed! -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos INFO: [401/478] Analyzing https://github.com/anthonytamzil/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/anthonytamzil/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:47 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/anthonytamzil/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/cyaoxuan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/cyaoxuan/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/cyaoxuan/ip.git (master) completed! -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepos -INFO: [402/478] Analyzing https://github.com/saltedfishxx/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/saltedfishxx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:47 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/saltedfishxx/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [402/478] Analyzing https://github.com/CelestineTan03/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/CelestineTan03/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/CelestineTan03/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/anthonytamzil/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/anthonytamzil/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/anthonytamzil/ip.git (master) completed! -Sep 26, 2023 2:08:47 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos INFO: [403/478] Analyzing https://github.com/Jweewee/ip.git (master)... -Sep 26, 2023 2:08:47 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/saltedfishxx/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/CelestineTan03/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Jweewee/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Jweewee/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/saltedfishxx/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/saltedfishxx/ip.git (master) completed! -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [404/478] Analyzing https://github.com/CelestineTan03/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/CelestineTan03/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/CelestineTan03/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/CelestineTan03/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/CelestineTan03/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/CelestineTan03/ip.git (master) completed! -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos +INFO: [404/478] Analyzing https://github.com/saltedfishxx/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/saltedfishxx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/saltedfishxx/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/saltedfishxx/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/saltedfishxx/ip.git (master)... +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/saltedfishxx/ip.git (master) completed! +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator analyzeRepos INFO: [405/478] Analyzing https://github.com/AlagappanRa/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:32 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AlagappanRa/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:32 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AlagappanRa/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Jweewee/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Jweewee/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Jweewee/ip.git (master) completed! -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos INFO: [406/478] Analyzing https://github.com/Ken-Lai/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AlagappanRa/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Ken-Lai/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Ken-Lai/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AlagappanRa/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AlagappanRa/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AlagappanRa/ip.git (master) completed! -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator analyzeRepos -INFO: [407/478] Analyzing https://github.com/itssisi/ip.git (master)... -Sep 26, 2023 2:08:48 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [407/478] Analyzing https://github.com/euchangxian/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/euchangxian/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/euchangxian/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Ken-Lai/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Ken-Lai/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Ken-Lai/ip.git (master) completed! +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos +INFO: [408/478] Analyzing https://github.com/itssisi/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/itssisi/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:48 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/itssisi/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/itssisi/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/itssisi/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/itssisi/ip.git (master) completed! -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator analyzeRepos -INFO: [408/478] Analyzing https://github.com/euchangxian/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Ken-Lai/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Ken-Lai/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Ken-Lai/ip.git (master) completed! -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator analyzeRepos INFO: [409/478] Analyzing https://github.com/jamz903/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/euchangxian/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/euchangxian/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:33 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jamz903/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:33 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jamz903/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jamz903/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jamz903/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jamz903/ip.git (master) completed! -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/euchangxian/ip.git (master)... +Sep 27, 2023 1:15:33 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/euchangxian/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/euchangxian/ip.git (master) completed! +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos INFO: [410/478] Analyzing https://github.com/Kevin-Liusx/ip.git (master)... -Sep 26, 2023 2:08:49 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Kevin-Liusx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:49 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Kevin-Liusx/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/euchangxian/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Kevin-Liusx/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Kevin-Liusx/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Kevin-Liusx/ip.git (master) completed! -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jamz903/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jamz903/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jamz903/ip.git (master) completed! +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos INFO: [411/478] Analyzing https://github.com/Propene-Dan/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Propene-Dan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Propene-Dan/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/euchangxian/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/euchangxian/ip.git (master) completed! -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [412/478] Analyzing https://github.com/ChuanXinNg/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ChuanXinNg/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ChuanXinNg/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Kevin-Liusx/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Kevin-Liusx/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Kevin-Liusx/ip.git (master) completed! +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [412/478] Analyzing https://github.com/kenvynKwek/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/kenvynKwek/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/kenvynKwek/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Propene-Dan/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Propene-Dan/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Propene-Dan/ip.git (master) completed! -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [413/478] Analyzing https://github.com/kenvynKwek/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/kenvynKwek/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/kenvynKwek/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ChuanXinNg/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ChuanXinNg/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ChuanXinNg/ip.git (master) completed! -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepos -INFO: [414/478] Analyzing https://github.com/prawnzyy/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/prawnzyy/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/prawnzyy/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [413/478] Analyzing https://github.com/ChuanXinNg/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ChuanXinNg/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ChuanXinNg/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/kenvynKwek/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/kenvynKwek/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/kenvynKwek/ip.git (master) completed! -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [414/478] Analyzing https://github.com/prawnzyy/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/prawnzyy/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/prawnzyy/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ChuanXinNg/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ChuanXinNg/ip.git (master)... +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ChuanXinNg/ip.git (master) completed! +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos INFO: [415/478] Analyzing https://github.com/Ruizhi2001/ip.git (master)... -Sep 26, 2023 2:08:50 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Ruizhi2001/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:50 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:34 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Ruizhi2001/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/prawnzyy/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:34 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/prawnzyy/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/prawnzyy/ip.git (master) completed! -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [416/478] Analyzing https://github.com/saraozn/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/saraozn/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/saraozn/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:34 AM reposense.report.ReportGenerator analyzeRepos +INFO: [416/478] Analyzing https://github.com/nicholastng010601/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nicholastng010601/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nicholastng010601/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Ruizhi2001/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Ruizhi2001/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Ruizhi2001/ip.git (master) completed! -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [417/478] Analyzing https://github.com/nicholastng010601/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nicholastng010601/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nicholastng010601/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/saraozn/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/saraozn/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/saraozn/ip.git (master) completed! -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [418/478] Analyzing https://github.com/DistractedCat/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/DistractedCat/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/DistractedCat/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [417/478] Analyzing https://github.com/saraozn/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/saraozn/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/saraozn/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/nicholastng010601/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/saraozn/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nicholastng010601/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nicholastng010601/ip.git (master) completed! -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [419/478] Analyzing https://github.com/yezkez10/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [418/478] Analyzing https://github.com/yezkez10/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/saraozn/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/saraozn/ip.git (master) completed! +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [419/478] Analyzing https://github.com/DistractedCat/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/yezkez10/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/yezkez10/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/DistractedCat/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/DistractedCat/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/DistractedCat/ip.git (master) completed! -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator analyzeRepos -INFO: [420/478] Analyzing https://github.com/revdrag/ip.git (master)... -Sep 26, 2023 2:08:51 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/revdrag/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:51 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/revdrag/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/DistractedCat/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/DistractedCat/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/yezkez10/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/yezkez10/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/yezkez10/ip.git (master) completed! -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos +INFO: [420/478] Analyzing https://github.com/revdrag/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/revdrag/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/revdrag/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/DistractedCat/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/DistractedCat/ip.git (master)... +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/DistractedCat/ip.git (master) completed! +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator analyzeRepos INFO: [421/478] Analyzing https://github.com/alvinlim277/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:35 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/alvinlim277/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:35 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/alvinlim277/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:35 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/revdrag/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/revdrag/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/revdrag/ip.git (master) completed! -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos INFO: [422/478] Analyzing https://github.com/JasonRay168/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/JasonRay168/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/JasonRay168/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/alvinlim277/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/alvinlim277/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/alvinlim277/ip.git (master) completed! -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos INFO: [423/478] Analyzing https://github.com/billieboy7/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/billieboy7/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/billieboy7/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/JasonRay168/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/JasonRay168/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/JasonRay168/ip.git (master) completed! -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator analyzeRepos -INFO: [424/478] Analyzing https://github.com/jannnice/ip.git (master)... -Sep 26, 2023 2:08:52 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jannnice/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:52 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jannnice/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [424/478] Analyzing https://github.com/samuelim01/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/samuelim01/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/samuelim01/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/billieboy7/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/billieboy7/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/billieboy7/ip.git (master) completed! -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [425/478] Analyzing https://github.com/evanyan13/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jannnice/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jannnice/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jannnice/ip.git (master) completed! -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [426/478] Analyzing https://github.com/dinde2004/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [425/478] Analyzing https://github.com/dinde2004/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dinde2004/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dinde2004/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/evanyan13/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/evanyan13/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/samuelim01/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/dinde2004/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/samuelim01/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/samuelim01/ip.git (master) completed! +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [426/478] Analyzing https://github.com/jannnice/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dinde2004/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dinde2004/ip.git (master) completed! -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepos -INFO: [427/478] Analyzing https://github.com/samuelim01/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/samuelim01/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/samuelim01/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/evanyan13/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/evanyan13/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/evanyan13/ip.git (master) completed! -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator analyzeRepos +INFO: [427/478] Analyzing https://github.com/evanyan13/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jannnice/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jannnice/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/evanyan13/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:36 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/evanyan13/ip.git (master)... +Sep 27, 2023 1:15:36 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jannnice/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jannnice/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jannnice/ip.git (master) completed! +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [428/478] Analyzing https://github.com/seanpzk/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/samuelim01/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/seanpzk/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:53 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/seanpzk/ip.git (master)... -Sep 26, 2023 2:08:53 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/samuelim01/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/samuelim01/ip.git (master) completed! -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/seanpzk/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/seanpzk/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/seanpzk/ip.git (master) completed! +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [429/478] Analyzing https://github.com/lsyurea/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lsyurea/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lsyurea/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/seanpzk/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/evanyan13/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/evanyan13/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/evanyan13/ip.git (master) completed! +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [430/478] Analyzing https://github.com/KumChaiYin/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/KumChaiYin/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/KumChaiYin/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lsyurea/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/seanpzk/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/seanpzk/ip.git (master) completed! -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [430/478] Analyzing https://github.com/geraldngjx/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lsyurea/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lsyurea/ip.git (master) completed! -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos INFO: [431/478] Analyzing https://github.com/Sasmik23/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/geraldngjx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/geraldngjx/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Sasmik23/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Sasmik23/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/geraldngjx/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/geraldngjx/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/geraldngjx/ip.git (master) completed! -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [432/478] Analyzing https://github.com/garylow2001/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/garylow2001/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/garylow2001/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/KumChaiYin/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/KumChaiYin/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/KumChaiYin/ip.git (master) completed! +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator analyzeRepos +INFO: [432/478] Analyzing https://github.com/geraldngjx/ip.git (master)... +Sep 27, 2023 1:15:37 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/geraldngjx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:37 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/geraldngjx/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Sasmik23/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Sasmik23/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Sasmik23/ip.git (master) completed! -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator analyzeRepos -INFO: [433/478] Analyzing https://github.com/leontan2/ip.git (master)... -Sep 26, 2023 2:08:54 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/leontan2/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:54 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/leontan2/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [433/478] Analyzing https://github.com/garylow2001/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/garylow2001/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/garylow2001/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/geraldngjx/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/geraldngjx/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/geraldngjx/ip.git (master) completed! +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [434/478] Analyzing https://github.com/wamps-jp/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wamps-jp/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wamps-jp/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/garylow2001/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/garylow2001/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/garylow2001/ip.git (master) completed! -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [434/478] Analyzing https://github.com/KumChaiYin/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/KumChaiYin/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/KumChaiYin/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/leontan2/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/leontan2/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/leontan2/ip.git (master) completed! -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [435/478] Analyzing https://github.com/wamps-jp/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wamps-jp/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wamps-jp/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/KumChaiYin/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/KumChaiYin/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/KumChaiYin/ip.git (master) completed! -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepos -INFO: [436/478] Analyzing https://github.com/dickongwd/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/dickongwd/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/dickongwd/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [435/478] Analyzing https://github.com/leontan2/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/leontan2/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/leontan2/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wamps-jp/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wamps-jp/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wamps-jp/ip.git (master) completed! -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [436/478] Analyzing https://github.com/dickongwd/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/dickongwd/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/dickongwd/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/leontan2/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/leontan2/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/leontan2/ip.git (master) completed! +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos INFO: [437/478] Analyzing https://github.com/jacksonyuan256/ip.git (master)... -Sep 26, 2023 2:08:55 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jacksonyuan256/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:55 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jacksonyuan256/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jacksonyuan256/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jacksonyuan256/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jacksonyuan256/ip.git (master) completed! -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [438/478] Analyzing https://github.com/wr1159/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/dickongwd/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/wr1159/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:56 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/wr1159/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dickongwd/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dickongwd/ip.git (master) completed! -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [439/478] Analyzing https://github.com/Nauxe/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Nauxe/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:56 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Nauxe/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [438/478] Analyzing https://github.com/wr1159/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/wr1159/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:38 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/wr1159/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jacksonyuan256/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jacksonyuan256/ip.git (master)... +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jacksonyuan256/ip.git (master) completed! +Sep 27, 2023 1:15:38 AM reposense.report.ReportGenerator analyzeRepos +INFO: [439/478] Analyzing https://github.com/suryanshkushwaha/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/suryanshkushwaha/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/suryanshkushwaha/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wr1159/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wr1159/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wr1159/ip.git (master) completed! -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [440/478] Analyzing https://github.com/suryanshkushwaha/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/suryanshkushwaha/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:56 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/suryanshkushwaha/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Nauxe/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Nauxe/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Nauxe/ip.git (master) completed! -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepos -INFO: [441/478] Analyzing https://github.com/lululwtv/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [440/478] Analyzing https://github.com/Nauxe/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Nauxe/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Nauxe/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/suryanshkushwaha/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/suryanshkushwaha/ip.git (master)... -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/suryanshkushwaha/ip.git (master) completed! -Sep 26, 2023 2:08:56 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [441/478] Analyzing https://github.com/yyyaohhh/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/yyyaohhh/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/yyyaohhh/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Nauxe/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Nauxe/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Nauxe/ip.git (master) completed! +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos INFO: [442/478] Analyzing https://github.com/zhanyang01/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/zhanyang01/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/zhanyang01/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/lululwtv/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/lululwtv/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/zhanyang01/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/zhanyang01/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/zhanyang01/ip.git (master) completed! -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/yyyaohhh/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/yyyaohhh/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/yyyaohhh/ip.git (master) completed! +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos INFO: [443/478] Analyzing https://github.com/czhiruo/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/czhiruo/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/czhiruo/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/zhanyang01/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/zhanyang01/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/zhanyang01/ip.git (master) completed! +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [444/478] Analyzing https://github.com/victorpengmx/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/victorpengmx/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:39 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/victorpengmx/ip.git (master)... +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/czhiruo/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:39 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/czhiruo/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/czhiruo/ip.git (master) completed! -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator analyzeRepos -INFO: [444/478] Analyzing https://github.com/longnguyentan/ip.git (master)... -Sep 26, 2023 2:08:57 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:39 AM reposense.report.ReportGenerator analyzeRepos +INFO: [445/478] Analyzing https://github.com/lululwtv/ip.git (master)... +Sep 27, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/victorpengmx/ip.git (master)... +Sep 27, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/victorpengmx/ip.git (master)... +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/victorpengmx/ip.git (master) completed! +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [446/478] Analyzing https://github.com/longnguyentan/ip.git (master)... +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/longnguyentan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:57 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/longnguyentan/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/lululwtv/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/lululwtv/ip.git (master)... +Sep 27, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/longnguyentan/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/longnguyentan/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/longnguyentan/ip.git (master) completed! -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [445/478] Analyzing https://github.com/victorpengmx/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/victorpengmx/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/victorpengmx/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/lululwtv/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/lululwtv/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/lululwtv/ip.git (master) completed! -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [446/478] Analyzing https://github.com/yyyaohhh/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/yyyaohhh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/yyyaohhh/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/victorpengmx/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/victorpengmx/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/victorpengmx/ip.git (master) completed! -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos INFO: [447/478] Analyzing https://github.com/Cikguseven/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Cikguseven/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:58 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Cikguseven/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/yyyaohhh/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/yyyaohhh/ip.git (master)... -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/yyyaohhh/ip.git (master) completed! -Sep 26, 2023 2:08:58 PM reposense.report.ReportGenerator analyzeRepos -INFO: [448/478] Analyzing https://github.com/Eola-Z/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Eola-Z/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Eola-Z/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:40 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Cikguseven/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:40 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Cikguseven/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Cikguseven/ip.git (master) completed! -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepos -INFO: [449/478] Analyzing https://github.com/jibtaf/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator analyzeRepos +INFO: [448/478] Analyzing https://github.com/Eola-Z/ip.git (master)... +Sep 27, 2023 1:15:40 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Eola-Z/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:40 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Eola-Z/ip.git (master)... +Sep 27, 2023 1:15:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Eola-Z/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Eola-Z/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jibtaf/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jibtaf/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Eola-Z/ip.git (master) completed! -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [449/478] Analyzing https://github.com/Mohammed-Faizzzz/ip.git (master)... +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Mohammed-Faizzzz/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Mohammed-Faizzzz/ip.git (master)... +Sep 27, 2023 1:15:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Mohammed-Faizzzz/ip.git (master)... +Sep 27, 2023 1:15:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Mohammed-Faizzzz/ip.git (master)... +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Mohammed-Faizzzz/ip.git (master) completed! +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepos INFO: [450/478] Analyzing https://github.com/lipwei1808/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/lipwei1808/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/lipwei1808/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:41 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/lipwei1808/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jibtaf/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:41 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/lipwei1808/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/lipwei1808/ip.git (master) completed! -Sep 26, 2023 2:08:59 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator analyzeRepos +INFO: [451/478] Analyzing https://github.com/jibtaf/ip.git (master)... +Sep 27, 2023 1:15:41 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jibtaf/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:41 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jibtaf/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jibtaf/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jibtaf/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepos -INFO: [451/478] Analyzing https://github.com/Mohammed-Faizzzz/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jibtaf/ip.git (master) completed! -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos INFO: [452/478] Analyzing https://github.com/dylkaw/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Mohammed-Faizzzz/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Mohammed-Faizzzz/ip.git (master)... -Sep 26, 2023 2:08:59 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/dylkaw/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:08:59 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/dylkaw/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/dylkaw/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/dylkaw/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/dylkaw/ip.git (master) completed! -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [453/478] Analyzing https://github.com/nikele2001/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nikele2001/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nikele2001/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Mohammed-Faizzzz/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Mohammed-Faizzzz/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Mohammed-Faizzzz/ip.git (master) completed! -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [454/478] Analyzing https://github.com/DeltonCheng/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [453/478] Analyzing https://github.com/DeltonCheng/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/lululwtv/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/DeltonCheng/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/DeltonCheng/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/DeltonCheng/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nikele2001/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/DeltonCheng/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/DeltonCheng/ip.git (master) completed! -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nikele2001/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [455/478] Analyzing https://github.com/craigtonlian/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nikele2001/ip.git (master) completed! -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator analyzeRepos -INFO: [456/478] Analyzing https://github.com/ChangruHenryQian/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/craigtonlian/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/craigtonlian/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [454/478] Analyzing https://github.com/nikele2001/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nikele2001/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nikele2001/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/lululwtv/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/lululwtv/ip.git (master) completed! +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator analyzeRepos +INFO: [455/478] Analyzing https://github.com/ChangruHenryQian/ip.git (master)... +Sep 27, 2023 1:15:42 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/ChangruHenryQian/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:00 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:42 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/ChangruHenryQian/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nikele2001/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/ChangruHenryQian/ip.git (master)... -Sep 26, 2023 2:09:00 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nikele2001/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/ChangruHenryQian/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/ChangruHenryQian/ip.git (master) completed! -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [457/478] Analyzing https://github.com/ruo-x/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/craigtonlian/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/ruo-x/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/ruo-x/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/craigtonlian/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/craigtonlian/ip.git (master) completed! -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [458/478] Analyzing https://github.com/iantsaii/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [456/478] Analyzing https://github.com/iantsaii/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nikele2001/ip.git (master) completed! +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [457/478] Analyzing https://github.com/craigtonlian/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/iantsaii/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/iantsaii/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/craigtonlian/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/craigtonlian/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/iantsaii/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/iantsaii/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/iantsaii/ip.git (master) completed! -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [459/478] Analyzing https://github.com/wjacobw/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [458/478] Analyzing https://github.com/wjacobw/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/wjacobw/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/wjacobw/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/ruo-x/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/ruo-x/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/ruo-x/ip.git (master) completed! -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [460/478] Analyzing https://github.com/angkyakdifp/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/angkyakdifp/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/angkyakdifp/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/craigtonlian/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/craigtonlian/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/craigtonlian/ip.git (master) completed! +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [459/478] Analyzing https://github.com/ruo-x/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/ruo-x/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/ruo-x/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/wjacobw/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/wjacobw/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/wjacobw/ip.git (master) completed! -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator analyzeRepos -INFO: [461/478] Analyzing https://github.com/brein62/ip.git (master)... -Sep 26, 2023 2:09:01 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/brein62/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:01 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/brein62/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [460/478] Analyzing https://github.com/angkyakdifp/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/angkyakdifp/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/angkyakdifp/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/angkyakdifp/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/angkyakdifp/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/angkyakdifp/ip.git (master) completed! -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator analyzeRepos -INFO: [462/478] Analyzing https://github.com/nicrandomlee/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nicrandomlee/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nicrandomlee/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator analyzeRepos +INFO: [461/478] Analyzing https://github.com/brein62/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/brein62/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:43 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/brein62/ip.git (master)... +Sep 27, 2023 1:15:43 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/ruo-x/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/ruo-x/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/ruo-x/ip.git (master) completed! +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [462/478] Analyzing https://github.com/Bryan-Goh/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Bryan-Goh/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Bryan-Goh/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/brein62/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Bryan-Goh/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/brein62/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Bryan-Goh/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Bryan-Goh/ip.git (master) completed! +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/brein62/ip.git (master) completed! -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator analyzeRepos -INFO: [463/478] Analyzing https://github.com/Bryan-Goh/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Bryan-Goh/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Bryan-Goh/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nicrandomlee/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nicrandomlee/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nicrandomlee/ip.git (master) completed! -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [463/478] Analyzing https://github.com/nicrandomlee/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos INFO: [464/478] Analyzing https://github.com/kiatkat/ip.git (master)... -Sep 26, 2023 2:09:02 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/kiatkat/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/kiatkat/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Bryan-Goh/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Bryan-Goh/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Bryan-Goh/ip.git (master) completed! -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator analyzeRepos -INFO: [465/478] Analyzing https://github.com/MadLamprey/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/MadLamprey/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/MadLamprey/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nicrandomlee/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nicrandomlee/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/kiatkat/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/kiatkat/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/kiatkat/ip.git (master) completed! -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos +INFO: [465/478] Analyzing https://github.com/MadLamprey/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/MadLamprey/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/MadLamprey/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nicrandomlee/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nicrandomlee/ip.git (master)... +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nicrandomlee/ip.git (master) completed! +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator analyzeRepos INFO: [466/478] Analyzing https://github.com/xyT-T/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:44 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/xyT-T/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:44 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/xyT-T/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/MadLamprey/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/MadLamprey/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/MadLamprey/ip.git (master) completed! -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos INFO: [467/478] Analyzing https://github.com/jiakai-17/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/jiakai-17/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/jiakai-17/ip.git (master)... -Sep 26, 2023 2:09:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/xyT-T/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/xyT-T/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/xyT-T/ip.git (master) completed! -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepos -INFO: [468/478] Analyzing https://github.com/nathanielcalimag/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/nathanielcalimag/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/nathanielcalimag/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jiakai-17/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/jiakai-17/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/jiakai-17/ip.git (master) completed! -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepos -INFO: [469/478] Analyzing https://github.com/nreHieW/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [468/478] Analyzing https://github.com/nreHieW/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/nreHieW/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/nreHieW/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jiakai-17/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/nreHieW/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/nathanielcalimag/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/jiakai-17/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/nreHieW/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/nreHieW/ip.git (master) completed! -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/nathanielcalimag/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/jiakai-17/ip.git (master) completed! +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [469/478] Analyzing https://github.com/nathanielcalimag/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos INFO: [470/478] Analyzing https://github.com/Saezenn/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/nathanielcalimag/ip.git (master) completed! -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepos -INFO: [471/478] Analyzing https://github.com/jellywaiyan/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/nathanielcalimag/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/nathanielcalimag/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Saezenn/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Saezenn/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/jellywaiyan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/jellywaiyan/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Saezenn/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Saezenn/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Saezenn/ip.git (master) completed! -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos +INFO: [471/478] Analyzing https://github.com/jellywaiyan/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/jellywaiyan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/jellywaiyan/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/nathanielcalimag/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/nathanielcalimag/ip.git (master)... +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/nathanielcalimag/ip.git (master) completed! +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator analyzeRepos INFO: [472/478] Analyzing https://github.com/marquestye/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/jellywaiyan/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:45 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/marquestye/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:45 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/marquestye/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/jellywaiyan/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/jellywaiyan/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/jellywaiyan/ip.git (master) completed! -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos INFO: [473/478] Analyzing https://github.com/Tang-Moyan/ip.git (master)... -Sep 26, 2023 2:09:04 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Tang-Moyan/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Tang-Moyan/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/Tang-Moyan/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/marquestye/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/Tang-Moyan/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/Tang-Moyan/ip.git (master) completed! -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [474/478] Analyzing https://github.com/DonovanJJ/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/marquestye/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/marquestye/ip.git (master) completed! -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [475/478] Analyzing https://github.com/Sebtey/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Tang-Moyan/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Tang-Moyan/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [474/478] Analyzing https://github.com/DonovanJJ/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/DonovanJJ/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/DonovanJJ/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/Sebtey/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/Sebtey/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/Tang-Moyan/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/DonovanJJ/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/Tang-Moyan/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/Tang-Moyan/ip.git (master) completed! +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/DonovanJJ/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [475/478] Analyzing https://github.com/Sebtey/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/DonovanJJ/ip.git (master) completed! -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepos +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos INFO: [476/478] Analyzing https://github.com/tyouwei/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/Sebtey/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/Sebtey/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/tyouwei/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/tyouwei/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Sebtey/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/tyouwei/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Sebtey/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Sebtey/ip.git (master) completed! -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator analyzeRepos -INFO: [477/478] Analyzing https://github.com/rionshocker/ip.git (master)... -Sep 26, 2023 2:09:05 PM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/rionshocker/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/rionshocker/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/tyouwei/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [477/478] Analyzing https://github.com/Blizzeracz/ip.git (master)... +Sep 27, 2023 1:15:46 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/tyouwei/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/tyouwei/ip.git (master) completed! -Sep 26, 2023 2:09:06 PM reposense.report.ReportGenerator analyzeRepos -INFO: [478/478] Analyzing https://github.com/Blizzeracz/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.report.ReportGenerator updateRepoConfig +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/Blizzeracz/ip.git (master) does not contain a standalone config file. -Sep 26, 2023 2:09:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +Sep 27, 2023 1:15:46 AM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/Blizzeracz/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:46 AM reposense.report.ReportGenerator analyzeRepos +INFO: [478/478] Analyzing https://github.com/rionshocker/ip.git (master)... +Sep 27, 2023 1:15:47 AM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/rionshocker/ip.git (master) does not contain a standalone config file. +Sep 27, 2023 1:15:47 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/rionshocker/ip.git (master)... +Sep 27, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/Blizzeracz/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/Blizzeracz/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/Blizzeracz/ip.git (master) completed! -Sep 26, 2023 2:09:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos +Sep 27, 2023 1:15:47 AM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/rionshocker/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +Sep 27, 2023 1:15:47 AM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/rionshocker/ip.git (master)... -Sep 26, 2023 2:09:06 PM reposense.report.ReportGenerator analyzeRepo +Sep 27, 2023 1:15:47 AM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/rionshocker/ip.git (master) completed! -Sep 26, 2023 2:09:06 PM reposense.report.ReportGenerator generateReposReport +Sep 27, 2023 1:15:47 AM reposense.report.ReportGenerator generateReposReport INFO: The report is generated at /home/runner/work/ip-dashboard/ip-dashboard/reposense-report -Sep 26, 2023 2:09:09 PM reposense.RepoSense main -INFO: Elapsed processing time: 3 minute(s) 3.41 second(s) +Sep 27, 2023 1:15:49 AM reposense.RepoSense main +INFO: Elapsed processing time: 2 minute(s) 22.72 second(s) diff --git a/ryanongwx_ip_master/authorship.json b/ryanongwx_ip_master/authorship.json index a8d895d1..971b6157 100644 --- a/ryanongwx_ip_master/authorship.json +++ b/ryanongwx_ip_master/authorship.json @@ -1 +1 @@ -[{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" mainClass.set(\"duke.Duke\")","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":52,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":41,"ryanongwx":15}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"# RemindMe User Guide","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"## Introduction","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"Welcome to RemindMe, your friendly task management chatbot! RemindMe is designed to help you organize your tasks efficiently. Whether it\u0027s creating to-dos, tracking deadlines, or managing events, RemindMe has you covered. This user guide will provide you with all the information you need to make the most of this chatbot.","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"## Table of Contents","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"- [Getting Started](#getting-started)","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"- [Basic Commands](#basic-commands)","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"- [Advanced Features](#advanced-features)","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" - [Finding Tasks](#finding-tasks)","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"- [Saving Your Data](#saving-your-data)","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":"- [Running via JAR File](#running-via-jar-file)","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"- [Conclusion](#conclusion)","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"## Getting Started","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":"Before we dive into the details, here\u0027s how you can start using RemindMe:","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"1. **Run the Chatbot**: To use RemindMe, you can run it in two ways:","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2019-07-29"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" a. **Running from Source Code**: If you have the source code, execute the main class `Duke.java` to start the chatbot.","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" b. **Running from JAR File**: If you have the JAR file, follow the instructions in the [Running via JAR File](#running-via-jar-file) section.","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":"2. **Interact with RemindMe**: Once the chatbot is running, you can start interacting with it through your console or terminal.","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":"3. **Enter Commands**: Simply type in your commands to create, manage, and track tasks. RemindMe will respond to your inputs accordingly.","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":"## Basic Commands","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":"### 1. Adding Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"- **To-Do**: Create a to-do task by entering `todo [task description]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"- **Deadline**: Set a task with a deadline using `deadline [task description] /by [date and time]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":"- **Event**: Plan an event task with `event [task description] /from [start date and time] /to [end date and time]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"### 2. Listing Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"- **List**: See all your tasks with `list`.","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":"### 3. Managing Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":"- **Mark as Done**: Mark a task as done by typing `mark [task number]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":"- **Unmark**: Undo a task\u0027s completion with `unmark [task number]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":"- **Delete**: Remove a task from your list with `delete [task number]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"### 4. Exiting","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":"- **Exit**: To exit the chatbot, type `bye`. Don\u0027t worry; your tasks will be saved for your next session!","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":"## Advanced Features","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"### Finding Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"You can search for specific tasks using the `find [keyword]` command. RemindMe will display all tasks that contain the provided keyword.","lastModifiedDate":"2023-09-20"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":64,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-09-20"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":"find important","lastModifiedDate":"2023-09-20"},{"lineNumber":66,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"This will list all tasks with \"important\" in their descriptions.","lastModifiedDate":"2023-09-20"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"## Saving Your Data","lastModifiedDate":"2023-09-20"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":"RemindMe automatically saves your tasks to a file (`duke.txt`) when you exit the chatbot. When you relaunch the chatbot, your tasks will be loaded and ready for you to manage.","lastModifiedDate":"2023-09-20"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":"## Running via JAR File","lastModifiedDate":"2023-09-20"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":"If you have the RemindMe JAR file, follow these steps to run the chatbot:","lastModifiedDate":"2023-09-20"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":"1. **Open Terminal (or Command Prompt)**: Launch your terminal or command prompt.","lastModifiedDate":"2023-09-20"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":"2. **Navigate to the JAR File Directory**: Use the `cd` command to navigate to the directory where the RemindMe JAR file is located (`build/libs`).","lastModifiedDate":"2023-09-20"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":"3. **Run the JAR File**: Enter the following command to run the chatbot:","lastModifiedDate":"2023-09-20"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" ```shell","lastModifiedDate":"2023-09-20"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" java -jar RemindMe.jar","lastModifiedDate":"2023-09-20"},{"lineNumber":86,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2021-07-17"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":"4. **Interact with RemindMe**: Once the chatbot starts, follow the same interaction steps as described in [Getting Started](#getting-started).","lastModifiedDate":"2023-09-20"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":"## Conclusion","lastModifiedDate":"2023-09-20"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":"RemindMe is here to simplify your task management. Whether it\u0027s daily to-dos, important deadlines, or exciting events, RemindMe ensures you stay organized. Enjoy using RemindMe and stay on top of your tasks!","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"ryanongwx":75,"-":17}},{"path":"src/main/java/duke/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" protected LocalDate byDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" protected LocalTime byTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" protected String byDateTimeString;","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" public Deadline(String description, boolean isDone, String byDateAndTime) {","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" parseDateTime(byDateAndTime);","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" this.byDateTimeString \u003d byDateAndTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" return this.byDate;","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" public boolean isValidDate(String dateTimeString) {","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d dateTimeString.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" LocalDate.parse(parts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" LocalTime.parse(parts[1], DateTimeFormatter.ofPattern(\"HH:mm\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" return true;","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" return false;","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" public void parseDateTime(String dateTime) {","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" if (isValidDate(dateTime)) {","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d dateTime.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" byDate \u003d LocalDate.parse(parts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" byTime \u003d LocalTime.parse(parts[1], DateTimeFormatter.ofPattern(\"HH:mm\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-22"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" if (byDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" return \"[D]\" + super.toString() + \" (by: \" + byDate.format(DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"))","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" + \" \" + byTime.format(DateTimeFormatter.ofPattern(\"HH:mm\")) + \")\";","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" return \"[D]\" + super.toString() + \" (by: \" + byDateTimeString + \")\";","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" if (byDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" return \"D,\" + (isDone ? \"1\" : \"0\") + \",\" + description + \",\" + byDate + \" \" + byTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" return \"D,\" + (isDone ? \"1\" : \"0\") + \",\" + description + \",\" + byDateTimeString;","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":61}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-22"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.input.KeyCode;","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" * Duke is a task management chatbot GUI that allows users to manage their tasks","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" * including todos, deadlines, and events.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":"public class Duke extends Application {","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-05"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" private Scene scene;","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" private String outputText;","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" Storage storage \u003d new Storage(\"src/main/java/duke/data/duke.txt\");","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The storage and taskList objects should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" assert storage !\u003d null : \"Storage is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" assert taskList !\u003d null : \"TaskList is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" Ui.getGreeting();","lastModifiedDate":"2023-09-05"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e loadedTasks \u003d storage.loadTasks();","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" taskList.setTasks(loadedTasks);","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-05"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-05"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-05"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-05"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-05"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" Image logoImage \u003d new Image(getClass().getResourceAsStream(\"/duke/assets/images/profile.png\"));","lastModifiedDate":"2023-09-05"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" ImageView botGreetingLogoImageView \u003d new ImageView(logoImage);","lastModifiedDate":"2023-09-05"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" botGreetingLogoImageView.setFitWidth(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" botGreetingLogoImageView.setFitHeight(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" Label greetingLabel \u003d new Label(Ui.getGreeting());","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" HBox botGreetingMessage \u003d new HBox(botGreetingLogoImageView, greetingLabel);","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" botGreetingMessage.setAlignment(Pos.CENTER_LEFT);","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" dialogContainer.getChildren().addAll(botGreetingMessage);","lastModifiedDate":"2023-09-05"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" sendButton.setOnAction(event -\u003e {","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" String inputText \u003d userInput.getText();","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" if (inputText.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" storage.saveTasks(taskList.getTasks());","lastModifiedDate":"2023-08-29"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d Ui.getByeMessage();","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" } else if (inputText.equalsIgnoreCase(\"list\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d Ui.getList(taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" } else if (inputText.startsWith(\"find\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" String keyword \u003d inputText.substring(\"find\".length()).trim();","lastModifiedDate":"2023-09-05"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d taskList.findTasksByKeyword(keyword);","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-22"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d Parser.parseAndAddTask(inputText, taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" if (!inputText.isEmpty()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" ImageView botLogoImageView \u003d new ImageView(logoImage);","lastModifiedDate":"2023-09-05"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" botLogoImageView.setFitWidth(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" botLogoImageView.setFitHeight(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" ImageView userLogoImageView \u003d new ImageView(logoImage);","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" userLogoImageView.setFitWidth(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" userLogoImageView.setFitHeight(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" Label userLabel \u003d new Label(inputText);","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" userLabel.setStyle(\"-fx-background-color: lightblue; -fx-border-radius: 5; -fx-padding: 5px;\");","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" Label botLabel \u003d new Label(outputText);","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" botLabel.setStyle(\"-fx-background-color: lightgray; -fx-border-radius: 5; -fx-padding: 5px;\");","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" HBox userMessage \u003d new HBox(userLogoImageView, userLabel);","lastModifiedDate":"2023-09-05"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" HBox botMessage \u003d new HBox(botLabel, botLogoImageView);","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The userMessage and botMessage should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" assert userMessage !\u003d null : \"User message is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" assert botMessage !\u003d null : \"Bot message is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" userMessage.setAlignment(Pos.CENTER_RIGHT);","lastModifiedDate":"2023-09-20"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" botMessage.setAlignment(Pos.CENTER_LEFT);","lastModifiedDate":"2023-09-20"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" dialogContainer.getChildren().addAll(userMessage, botMessage);","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":" userInput.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" });","lastModifiedDate":"2023-09-05"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" userInput.setOnKeyPressed(event -\u003e {","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" if (event.getCode() \u003d\u003d KeyCode.ENTER) {","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" sendButton.fire();","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":" });","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":123,"author":{"gitId":"ryanongwx"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"ryanongwx"},"content":" stage.show();","lastModifiedDate":"2023-09-05"},{"lineNumber":125,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":126,"author":{"gitId":"ryanongwx"},"content":" stage.setTitle(\"RemindMe\");","lastModifiedDate":"2023-09-20"},{"lineNumber":127,"author":{"gitId":"ryanongwx"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-05"},{"lineNumber":128,"author":{"gitId":"ryanongwx"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":129,"author":{"gitId":"ryanongwx"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":130,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":131,"author":{"gitId":"ryanongwx"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":133,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setPrefSize(385, 535);","lastModifiedDate":"2023-09-05"},{"lineNumber":134,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-05"},{"lineNumber":135,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":137,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-05"},{"lineNumber":139,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"ryanongwx"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-05"},{"lineNumber":141,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":142,"author":{"gitId":"ryanongwx"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"ryanongwx"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":145,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":146,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":147,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":151,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setLeftAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":152,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":154,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":155,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":156,"author":{"gitId":"ryanongwx"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-11"},{"lineNumber":157,"author":{"gitId":"ryanongwx"},"content":" launch(args);","lastModifiedDate":"2023-09-11"},{"lineNumber":158,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":159,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"ryanongwx":157,"-":2}},{"path":"src/main/java/duke/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" * Represents an event task that occurs within a specified date and time range.","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" * Extends the base class Task.","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-22"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" protected LocalDate fromDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" protected LocalTime fromTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" protected LocalDate toDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" protected LocalTime toTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" protected String from;","lastModifiedDate":"2023-08-22"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" protected String to;","lastModifiedDate":"2023-08-22"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" * Constructs an event task with description and date-time range.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" * @param from The starting date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" * @param to The ending date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" public Event(String description, boolean isDone, String from, String to) {","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" parseDateTime(from, to);","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-22"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-22"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" * Checks if a given date-time string is in a valid format.","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" * @param dateTimeString The date-time string to be checked.","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" * @return True if the date-time string is in a valid format, otherwise false.","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" public boolean isValidDate(String dateTimeString) {","lastModifiedDate":"2023-08-29"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d dateTimeString.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" LocalDate.parse(parts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" LocalTime.parse(parts[1], DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" return true;","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" return false;","lastModifiedDate":"2023-08-29"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" * Parses the given date-time strings into LocalDate and LocalTime objects.","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" * @param fromdateTime The starting date-time string of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" * @param todateTime The ending date-time string of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" public void parseDateTime(String fromdateTime, String todateTime) {","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" if (isValidDate(fromdateTime) \u0026\u0026 isValidDate(todateTime)) {","lastModifiedDate":"2023-08-29"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" String[] fromparts \u003d fromdateTime.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" fromDate \u003d LocalDate.parse(fromparts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" fromTime \u003d LocalTime.parse(fromparts[1], DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" String[] toparts \u003d todateTime.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" toDate \u003d LocalDate.parse(toparts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" toTime \u003d LocalTime.parse(toparts[1], DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" * Generates a string representation of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" * @return A formatted string describing the event task, including date and","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" * time.","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-22"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" if (fromDate !\u003d null \u0026\u0026 toDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" return \"[E]\" + super.toString() + \" (from: \" + fromDate.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"))","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" + \" \" + fromTime.format(DateTimeFormatter.ofPattern(\"h:mm a\")) + \" to: \"","lastModifiedDate":"2023-08-29"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" + toDate.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"))","lastModifiedDate":"2023-08-29"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" + \" \" + toTime.format(DateTimeFormatter.ofPattern(\"h:mm a\")) + \")\";","lastModifiedDate":"2023-08-29"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" return \"[E]\" + super.toString() + \" (from: \" + from + \" to: \"","lastModifiedDate":"2023-08-29"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" + to + \")\";","lastModifiedDate":"2023-08-29"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" * Converts the event task to a string format suitable for saving.","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" * @return A string representation of the event task for saving purposes.","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" if (fromDate !\u003d null \u0026\u0026 toDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" return \"E,\" + isDone + \",\" + description + \",\" + fromDate + \" \" + fromTime + \",\" + toDate + \" \" + toTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" return \"E,\" + isDone + \",\" + description + \",\" + from + \",\" + to;","lastModifiedDate":"2023-08-29"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":105}},{"path":"src/main/java/duke/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"public class Launcher {","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" Application.launch(Duke.class, args);","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"ryanongwx":12}},{"path":"src/main/java/duke/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":" * The Parser class handles the parsing of user input commands and performs","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":" * corresponding actions.","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"public class Parser {","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_TODO \u003d \"todo\";","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_DEADLINE \u003d \"deadline\";","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_EVENT \u003d \"event\";","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_DELETE \u003d \"delete\";","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_MARK \u003d \"mark\";","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_UNMARK \u003d \"unmark\";","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds the corresponding task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" * @param userInput The user input command.","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the input command is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" public static String parseAndAddTask(String userInput, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" String[] words \u003d userInput.split(\" \", 2);","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" switch (words[0].toLowerCase()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_TODO:","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" return addTodoTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_DEADLINE:","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" return addDeadlineTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_EVENT:","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" return addEventTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_MARK:","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" return parseMarkTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_UNMARK:","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" return parseUnmarkTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_DELETE:","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" return parseDeleteTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" default:","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" throw new IllegalArgumentException(\"Invalid command: \" + words[0]);","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds a todo task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the description of the todo task is","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" * empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" private static String addTodoTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" if (args.isEmpty()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" throw new IllegalArgumentException(\"☹ OOPS!!! The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" return taskList.addTodo(args, false);","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds a deadline task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the deadline format is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" private static String addDeadlineTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d args.split(\" /by \");","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" if (parts.length !\u003d 2 || parts[0].isEmpty() || parts[1].isEmpty()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" throw new IllegalArgumentException(\"☹ OOPS!!! Invalid deadline format.\");","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" return taskList.addDeadline(parts[0], false, parts[1]);","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds an event task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the event format is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" private static String addEventTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d args.split(\" /from \");","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" String from \u003d parts[1].split(\" /to \")[0];","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" String to \u003d parts[1].split(\" /to \")[1];","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" return taskList.addEvent(parts[0], false, from, to);","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and marks a task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" private static String parseMarkTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" int index \u003d Integer.parseInt(args) - 1;","lastModifiedDate":"2023-08-29"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":" return taskList.markTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and unmarks a task.","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" private static String parseUnmarkTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" int index \u003d Integer.parseInt(args) - 1;","lastModifiedDate":"2023-08-29"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" return taskList.unmarkTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and deletes a task.","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" private static String parseDeleteTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" int index \u003d Integer.parseInt(args) - 1;","lastModifiedDate":"2023-08-29"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" return taskList.removeTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":121}},{"path":"src/main/java/duke/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.io.*;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" * Represents a class that handles the loading and saving of tasks to a file.","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"public class Storage {","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" private String filePath;","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" * Constructs a Storage object with the specified file path.","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" * @param filePath The path to the file for loading and saving tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" * Loads tasks from the file and returns them as an ArrayList.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" * @return An ArrayList containing the loaded tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" public ArrayList\u003cTask\u003e loadTasks() {","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e tasks \u003d new ArrayList\u003cTask\u003e();","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" try (BufferedReader reader \u003d new BufferedReader(new FileReader(filePath))) {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" String line;","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" String[] values \u003d line.split(\",\");","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" String taskType \u003d values[0].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" boolean isDone \u003d values[1].trim().equals(\"true\");","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" String description \u003d values[2].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" if (taskType.equals(\"T\")) {","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" tasks.add(new ToDo(description, isDone));","lastModifiedDate":"2023-08-29"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" } else if (taskType.equals(\"D\")) {","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" String byDateAndTime \u003d values[3];","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" System.out.println(byDateAndTime);","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" tasks.add(new Deadline(description, isDone, byDateAndTime));","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" } else if (taskType.equals(\"E\")) {","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" String from \u003d values[3].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" String to \u003d values[4].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" tasks.add(new Event(description, isDone, from, to));","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" System.out.println(\"Error loading tasks: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" return tasks;","lastModifiedDate":"2023-08-29"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" * Saves tasks to the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" * @param tasks An ArrayList containing tasks to be saved.","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" public void saveTasks(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-08-29"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" try (BufferedWriter writer \u003d new BufferedWriter(new FileWriter(filePath))) {","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-08-29"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" String line \u003d task.toSaveString();","lastModifiedDate":"2023-08-29"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" writer.write(line);","lastModifiedDate":"2023-08-29"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" writer.newLine();","lastModifiedDate":"2023-08-29"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" System.out.println(\"Error saving tasks: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":70}},{"path":"src/main/java/duke/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":" * Represents a task with a description and completion status.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"public class Task {","lastModifiedDate":"2023-08-22"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" protected String description;","lastModifiedDate":"2023-08-22"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-22"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" protected static int total \u003d 0;","lastModifiedDate":"2023-08-22"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" * Constructs a task with the given description and completion status.","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" * @param isDone The completion status of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" public Task(String description, boolean isDone) {","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-22"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" this.isDone \u003d isDone;","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" Task.total +\u003d 1;","lastModifiedDate":"2023-08-22"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" * Gets the status icon of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" * @return The status icon (\"X\" if done, \" \" if not done).","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-22"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" return (isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-22"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" return this.description;","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" * Converts the task to a formatted string.","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" * @return The formatted string representation of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" return \"[\" + this.getStatusIcon() + \"] \" + this.description; // mark done task with X","lastModifiedDate":"2023-08-22"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" * Marks the task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" public void markAsDone() {","lastModifiedDate":"2023-08-22"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-22"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" * Marks the task as not done.","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" public void unmark() {","lastModifiedDate":"2023-08-22"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-22"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" * Gets the total number of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" * @return The total number of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" public static int getTotal() {","lastModifiedDate":"2023-08-22"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" return Task.total;","lastModifiedDate":"2023-08-22"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" * Removes the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" public void remove() {","lastModifiedDate":"2023-08-22"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" Task.total -\u003d 1;","lastModifiedDate":"2023-08-22"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" * Converts the task to a string for saving.","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" * @return The formatted string for saving the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" return \"\";","lastModifiedDate":"2023-08-29"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" * Checks if the task is done.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" * @return True if the task is done, false otherwise.","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" public boolean isDone() {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" return isDone;","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":93}},{"path":"src/main/java/duke/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":" * Represents a list of tasks with various operations for managing tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"public class TaskList {","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" private ArrayList\u003cTask\u003e tasks;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" * Constructs an empty TaskList.","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" public TaskList() {","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" * Adds a deadline task to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the deadline task.","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" * @param byDateAndTime The date and time of the deadline.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" public String addDeadline(String description, boolean isDone, String byDateAndTime) {","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" Deadline deadline \u003d new Deadline(description, isDone, byDateAndTime);","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" tasks.add(deadline);","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" return Ui.getAddConfirmation(deadline, this.getTotalTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" * Adds a todo task to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" public String addTodo(String description, boolean isDone) {","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" ToDo todo \u003d new ToDo(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" tasks.add(todo);","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" return Ui.getAddConfirmation(todo, this.getTotalTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" * Adds an event task to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" * @param from The starting date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" * @param to The ending date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying event added to tasklist.","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" public String addEvent(String description, boolean isDone, String from, String to) {","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" Event event \u003d new Event(description, isDone, from, to);","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" tasks.add(event);","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" return Ui.getAddConfirmation(event, this.getTotalTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" * Removes a task from the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" * @param index The index of the task to be removed.","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying event removed from tasklist.","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" public String removeTask(int index) {","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" Task tmp \u003d tasks.get(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" int tmp1 \u003d this.getTotalTasks() - 1;","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" tasks.remove(index);","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" return Ui.getRemoved(tmp, tmp1);","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" * Returns the list of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" * @return The list of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" public ArrayList\u003cTask\u003e getTasks() {","lastModifiedDate":"2023-08-29"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" return tasks;","lastModifiedDate":"2023-08-29"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" * Returns the total number of tasks in the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" * @return The total number of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" public int getTotalTasks() {","lastModifiedDate":"2023-08-29"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" return tasks.size();","lastModifiedDate":"2023-08-29"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" * Marks a task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" * @param index The index of the task to be marked as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying tasked marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" public String markTask(int index) {","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" tasks.get(index).markAsDone();","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" return Ui.getMarkedAsDone(tasks.get(index));","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" * Unmarks a task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" * @param index The index of the task to be unmarked.","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" * * @return A message displaying tasked unmarked as not done.","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" public String unmarkTask(int index) {","lastModifiedDate":"2023-09-05"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":" tasks.get(index).unmark();","lastModifiedDate":"2023-08-29"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" return Ui.getUnmarked(tasks.get(index));","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" * Sets the tasks in the list to the given tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The ArrayList of tasks to be set.","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" public void setTasks(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-08-29"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" tasks.addAll(taskList);","lastModifiedDate":"2023-08-29"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":122,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"ryanongwx"},"content":" * Finds tasks in the task list that match a given keyword and displays them to","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"ryanongwx"},"content":" * the user.","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"ryanongwx"},"content":" * @param keyword The keyword to search for in task descriptions.","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"ryanongwx"},"content":" * @return A message all tasks found.","lastModifiedDate":"2023-09-05"},{"lineNumber":129,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"ryanongwx"},"content":" public String findTasksByKeyword(String keyword) {","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e matchingTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"ryanongwx"},"content":" for (Task task : this.tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"ryanongwx"},"content":" if (task.toSaveString().contains(keyword)) {","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"ryanongwx"},"content":" matchingTasks.add(task);","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"ryanongwx"},"content":" return Ui.getMatchingTasks(matchingTasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":141}},{"path":"src/main/java/duke/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":" * Represents a todo task that can be added to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-22"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" * Constructs a todo task with the specified description and status.","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" public ToDo(String description, boolean isDone) {","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" * Returns a string representation of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" * @return A string containing the status icon and description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-22"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-22"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" * Returns a formatted string for saving the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" * @return A string containing the task type, status, and description.","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" return \"T,\" + isDone + \",\" + description;","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":37}},{"path":"src/main/java/duke/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import java.time.temporal.ChronoUnit;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" * Represents the user interface for interacting with the chatbot.","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"public class Ui {","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" * Constructs a new UI instance with a scanner for user input.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" public Ui() {","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" * Returns a greeting message.","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" public static String getGreeting() {","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" return \"Hello! I\u0027m yourChatBot\\n\" +","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" \"What can I do for you?\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" * Returns a message displaying the list of tasks in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks to be displayed.","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying the list of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" public static String getList(TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" StringBuilder todolistoutput \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The taskList should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" assert taskList !\u003d null : \"TaskList is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e tasks \u003d taskList.getTasks();","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" // Add a section for upcoming deadlines","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(\"Upcoming Deadlines:\\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" if (task instanceof Deadline) {","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" Deadline deadline \u003d (Deadline) task;","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" LocalDate currentDate \u003d LocalDate.now();","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" LocalDate taskDate \u003d deadline.getDate();","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" // Check if currentDate and taskDate are not null","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" System.out.println(taskDate);","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" if (currentDate !\u003d null \u0026\u0026 taskDate !\u003d null) {","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" long daysUntilDeadline \u003d ChronoUnit.DAYS.between(currentDate, taskDate);","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" // Display the task name and days until the deadline","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(daysUntilDeadline).append(\" days left - \").append(deadline.getDescription())","lastModifiedDate":"2023-09-11"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" .append(\u0027\\n\u0027);","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" // Add a separator between upcoming deadlines and the existing task list","lastModifiedDate":"2023-09-11"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(\"\\nTask List:\\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-11"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(i + 1).append(\". \").append(tasks.get(i)).append(\"\\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The output should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" assert todolistoutput.toString() !\u003d null : \"List output is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" return todolistoutput.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" * Returns a message indicating that a task has been marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been marked as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" * @return A message indicating the task has been marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" public static String getMarkedAsDone(Task task) {","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The task should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" return \"Nice! I\u0027ve marked this task as done:\\n\" + task;","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" * Returns a message indicating that a task has been marked as not done.","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been marked as not done.","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" * @return A message indicating the task has been marked as not done.","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" public static String getUnmarked(Task task) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The task should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" return \"OK, I\u0027ve marked this task as not done yet:\\n\" + task + \"\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" * Returns a message indicating that a task has been removed.","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been removed.","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" * @param totalTasks The total number of tasks remaining.","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" * @return A message indicating the task has been removed.","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" public static String getRemoved(Task task, int totalTasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" // Assertions: The task and totalTasks should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" assert totalTasks \u003e\u003d 0 : \"TotalTasks is negative.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":" return \"Noted. I\u0027ve removed this task:\\n\" + task + \"\\n\" +","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" \"Now you have \" + totalTasks + \" tasks in the list.\";","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" * Returns an error message.","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" * @param errorMessage The error message to be displayed.","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":" * @return An error message.","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"ryanongwx"},"content":" public static String getError(String errorMessage) {","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The errorMessage should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":125,"author":{"gitId":"ryanongwx"},"content":" assert errorMessage !\u003d null : \"Error message is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":126,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":127,"author":{"gitId":"ryanongwx"},"content":" return errorMessage;","lastModifiedDate":"2023-09-05"},{"lineNumber":128,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":129,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":130,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"ryanongwx"},"content":" * Returns a confirmation message after adding a task.","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been added.","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"ryanongwx"},"content":" * @param totalTasks The total number of tasks in the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"ryanongwx"},"content":" * @return A confirmation message.","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"ryanongwx"},"content":" public static String getAddConfirmation(Task task, int totalTasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"ryanongwx"},"content":" // Assertions: The task and totalTasks should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":139,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":140,"author":{"gitId":"ryanongwx"},"content":" assert totalTasks \u003e\u003d 0 : \"TotalTasks is negative.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":141,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":142,"author":{"gitId":"ryanongwx"},"content":" return \"Got it. I\u0027ve added this task:\\n\" + task + \"\\n\" +","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"ryanongwx"},"content":" \"Now you have \" + totalTasks + \" tasks in the list.\";","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":145,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":146,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"ryanongwx"},"content":" * Returns a farewell message.","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"ryanongwx"},"content":" * @return A farewell message.","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"ryanongwx"},"content":" public static String getByeMessage() {","lastModifiedDate":"2023-09-05"},{"lineNumber":152,"author":{"gitId":"ryanongwx"},"content":" return \"Bye. Hope to see you again soon!\";","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":154,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":155,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"ryanongwx"},"content":" * Returns a list of tasks that match the given keyword to the user.","lastModifiedDate":"2023-09-05"},{"lineNumber":157,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"ryanongwx"},"content":" * @param matchingTasks The list of tasks that match the keyword.","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"ryanongwx"},"content":" * @return A list of matching tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":160,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"ryanongwx"},"content":" public static String getMatchingTasks(ArrayList\u003cTask\u003e matchingTasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":162,"author":{"gitId":"ryanongwx"},"content":" StringBuilder matchingTasksOutput \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":163,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":164,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The matchingTasks should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":165,"author":{"gitId":"ryanongwx"},"content":" assert matchingTasks !\u003d null : \"Matching tasks list is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":166,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":167,"author":{"gitId":"ryanongwx"},"content":" matchingTasksOutput.append(\"Here are the matching tasks in your list:\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":168,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c matchingTasks.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"ryanongwx"},"content":" matchingTasksOutput.append(i + 1).append(\". \").append(matchingTasks.get(i)).append(\"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":170,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":172,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The output should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":173,"author":{"gitId":"ryanongwx"},"content":" assert matchingTasksOutput.toString() !\u003d null : \"Matching tasks output is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":174,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":175,"author":{"gitId":"ryanongwx"},"content":" return matchingTasksOutput.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":176,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":177}},{"path":"src/main/java/duke/data/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"T,false,read book","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"E,false,project meeting,2019-10-15 16:00,2019-10-15 20:00","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"T,false,join sports club","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"E,false,Birthday party,2023-08-30 15:00,2023-08-30 18:00","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"D,0,do ip,2023-10-19 19:00","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"ryanongwx":5}},{"path":"src/test/java/duke/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertThrows;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertFalse;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"public class ParserTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_AddTodoTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"todo Buy groceries\";","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" assertEquals(1, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0) instanceof ToDo);","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_AddDeadlineTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"deadline Return book /by 2023-12-31\";","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" assertEquals(1, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0) instanceof Deadline);","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_AddEventTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"event Birthday party /from 2023-08-30 15:00 /to 2023-08-30 18:00\";","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" assertEquals(1, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0) instanceof Event);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_InvalidCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"invalidcommand\";","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" assertThrows(IllegalArgumentException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_MarkTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" taskList.addTodo(\"Test task\", false);","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"mark 1\";","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0).isDone());","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_UnmarkTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" taskList.addTodo(\"Test task\", true);","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"unmark 1\";","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" assertFalse(taskList.getTasks().get(0).isDone());","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_DeleteTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" taskList.addTodo(\"Test task\", false);","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"delete 1\";","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" assertEquals(0, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"ryanongwx":87}},{"path":"src/test/java/duke/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"public class StorageTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" void testLoadTasks() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" // Test loading of tasks from file","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" Path tempFilePath \u003d Files.createTempFile(null, \".txt\");","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" Storage storage \u003d new Storage(tempFilePath.toString());","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e expectedTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" expectedTasks.add(new ToDo(\"Task 1\", true));","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" expectedTasks.add(new Deadline(\"Deadline 1\", false, \"2023-08-29 1800\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" expectedTasks.add(new Event(\"Event 1\", true, \"2023-08-30 0900\", \"2023-08-30 1200\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" storage.saveTasks(expectedTasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e loadedTasks \u003d storage.loadTasks();","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" assertEquals(expectedTasks.size(), loadedTasks.size());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c expectedTasks.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" Task expectedTask \u003d expectedTasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" Task loadedTask \u003d loadedTasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" assertEquals(expectedTask.toSaveString(), loadedTask.toSaveString());","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" Files.deleteIfExists(tempFilePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" fail(\"Exception occurred during testing: \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" void testSaveTasks() {","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" // Test saving of todolist to file","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" Path tempFilePath \u003d Files.createTempFile(null, \".txt\");","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" Storage storage \u003d new Storage(tempFilePath.toString());","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e tasksToSave \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" tasksToSave.add(new ToDo(\"Task 1\", true));","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" tasksToSave.add(new Deadline(\"Deadline 1\", false, \"2023-08-29 1800\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" tasksToSave.add(new Event(\"Event 1\", true, \"2023-08-30 0900\", \"2023-08-30 1200\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" storage.saveTasks(tasksToSave);","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e loadedTasks \u003d storage.loadTasks();","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" assertEquals(tasksToSave.size(), loadedTasks.size());","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c tasksToSave.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" Task savedTask \u003d tasksToSave.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" Task loadedTask \u003d loadedTasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" assertEquals(savedTask.toSaveString(), loadedTask.toSaveString());","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" Files.deleteIfExists(tempFilePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" fail(\"Exception occurred during testing: \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"ryanongwx":70}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"todo borrow book","lastModifiedDate":"2023-08-22"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"list","lastModifiedDate":"2023-08-22"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"deadline return book /by Sunday","lastModifiedDate":"2023-08-22"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"event project meeting /from Mon 2pm /to 4pm","lastModifiedDate":"2023-08-22"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"delete 2","lastModifiedDate":"2023-08-22"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"blah","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":6}}] +[{"path":"build.gradle","fileType":"gradle","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":5,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" String javaFxVersion \u003d \u002717.0.7\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-base\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-controls\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-fxml\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027win\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027mac\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" implementation group: \u0027org.openjfx\u0027, name: \u0027javafx-graphics\u0027, version: javaFxVersion, classifier: \u0027linux\u0027","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-27"},{"lineNumber":27,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-09-27"},{"lineNumber":28,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":38,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" mainClass.set(\"duke.Launcher\")","lastModifiedDate":"2023-09-27"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":48,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":49,"author":{"gitId":"-"},"content":" archiveBaseName \u003d \"duke\"","lastModifiedDate":"2020-05-25"},{"lineNumber":50,"author":{"gitId":"-"},"content":" archiveClassifier \u003d null","lastModifiedDate":"2020-05-25"},{"lineNumber":51,"author":{"gitId":"-"},"content":" dependsOn(\"distZip\", \"distTar\")","lastModifiedDate":"2023-08-05"},{"lineNumber":52,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":54,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":55,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":56,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"-":41,"ryanongwx":15}},{"path":"docs/README.md","fileType":"md","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"# RemindMe User Guide","lastModifiedDate":"2023-09-20"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"## Introduction","lastModifiedDate":"2023-09-20"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"Welcome to RemindMe, your friendly task management chatbot! RemindMe is designed to help you organize your tasks efficiently. Whether it\u0027s creating to-dos, tracking deadlines, or managing events, RemindMe has you covered. This user guide will provide you with all the information you need to make the most of this chatbot.","lastModifiedDate":"2023-09-20"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"## Table of Contents","lastModifiedDate":"2023-09-20"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"- [Getting Started](#getting-started)","lastModifiedDate":"2023-09-20"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"- [Basic Commands](#basic-commands)","lastModifiedDate":"2023-09-20"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"- [Advanced Features](#advanced-features)","lastModifiedDate":"2023-09-20"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" - [Finding Tasks](#finding-tasks)","lastModifiedDate":"2023-09-20"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"- [Saving Your Data](#saving-your-data)","lastModifiedDate":"2023-09-20"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":"- [Running via JAR File](#running-via-jar-file)","lastModifiedDate":"2023-09-20"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"- [Conclusion](#conclusion)","lastModifiedDate":"2023-09-20"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"## Getting Started","lastModifiedDate":"2023-09-20"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":"Before we dive into the details, here\u0027s how you can start using RemindMe:","lastModifiedDate":"2023-09-20"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"1. **Run the Chatbot**: To use RemindMe, you can run it in two ways:","lastModifiedDate":"2023-09-20"},{"lineNumber":22,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2019-07-29"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" a. **Running from Source Code**: If you have the source code, execute the main class `Duke.java` to start the chatbot.","lastModifiedDate":"2023-09-20"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" b. **Running from JAR File**: If you have the JAR file, follow the instructions in the [Running via JAR File](#running-via-jar-file) section.","lastModifiedDate":"2023-09-20"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":"2. **Interact with RemindMe**: Once the chatbot is running, you can start interacting with it through your console or terminal.","lastModifiedDate":"2023-09-20"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":"3. **Enter Commands**: Simply type in your commands to create, manage, and track tasks. RemindMe will respond to your inputs accordingly.","lastModifiedDate":"2023-09-20"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":"## Basic Commands","lastModifiedDate":"2023-09-20"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2021-07-17"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":"### 1. Adding Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"- **To-Do**: Create a to-do task by entering `todo [task description]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"- **Deadline**: Set a task with a deadline using `deadline [task description] /by [date and time]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":"- **Event**: Plan an event task with `event [task description] /from [start date and time] /to [end date and time]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"### 2. Listing Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"- **List**: See all your tasks with `list`.","lastModifiedDate":"2023-09-20"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":"### 3. Managing Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":"- **Mark as Done**: Mark a task as done by typing `mark [task number]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":"- **Unmark**: Undo a task\u0027s completion with `unmark [task number]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":"- **Delete**: Remove a task from your list with `delete [task number]`.","lastModifiedDate":"2023-09-20"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"### 4. Exiting","lastModifiedDate":"2023-09-20"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":"- **Exit**: To exit the chatbot, type `bye`. Don\u0027t worry; your tasks will be saved for your next session!","lastModifiedDate":"2023-09-20"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":"## Advanced Features","lastModifiedDate":"2023-09-20"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"### Finding Tasks","lastModifiedDate":"2023-09-20"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"You can search for specific tasks using the `find [keyword]` command. RemindMe will display all tasks that contain the provided keyword.","lastModifiedDate":"2023-09-20"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":"Example:","lastModifiedDate":"2023-09-20"},{"lineNumber":64,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2023-09-20"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":"find important","lastModifiedDate":"2023-09-20"},{"lineNumber":66,"author":{"gitId":"-"},"content":"```","lastModifiedDate":"2021-07-17"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"This will list all tasks with \"important\" in their descriptions.","lastModifiedDate":"2023-09-20"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"## Saving Your Data","lastModifiedDate":"2023-09-20"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":"RemindMe automatically saves your tasks to a file (`duke.txt`) when you exit the chatbot. When you relaunch the chatbot, your tasks will be loaded and ready for you to manage.","lastModifiedDate":"2023-09-20"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":"## Running via JAR File","lastModifiedDate":"2023-09-20"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":"If you have the RemindMe JAR file, follow these steps to run the chatbot:","lastModifiedDate":"2023-09-20"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":"1. **Open Terminal (or Command Prompt)**: Launch your terminal or command prompt.","lastModifiedDate":"2023-09-20"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":"2. **Navigate to the JAR File Directory**: Use the `cd` command to navigate to the directory where the RemindMe JAR file is located (`build/libs`).","lastModifiedDate":"2023-09-20"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":"3. **Run the JAR File**: Enter the following command to run the chatbot:","lastModifiedDate":"2023-09-20"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" ```shell","lastModifiedDate":"2023-09-20"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" java -jar RemindMe.jar","lastModifiedDate":"2023-09-20"},{"lineNumber":86,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2021-07-17"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":"4. **Interact with RemindMe**: Once the chatbot starts, follow the same interaction steps as described in [Getting Started](#getting-started).","lastModifiedDate":"2023-09-20"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":"## Conclusion","lastModifiedDate":"2023-09-20"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-20"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":"RemindMe is here to simplify your task management. Whether it\u0027s daily to-dos, important deadlines, or exciting events, RemindMe ensures you stay organized. Enjoy using RemindMe and stay on top of your tasks!","lastModifiedDate":"2023-09-20"}],"authorContributionMap":{"ryanongwx":75,"-":17}},{"path":"src/main/java/duke/Deadline.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"public class Deadline extends Task {","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" protected LocalDate byDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" protected LocalTime byTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" protected String byDateTimeString;","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" public Deadline(String description, boolean isDone, String byDateAndTime) {","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" parseDateTime(byDateAndTime);","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" this.byDateTimeString \u003d byDateAndTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-09-11"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" return this.byDate;","lastModifiedDate":"2023-09-11"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" public boolean isValidDate(String dateTimeString) {","lastModifiedDate":"2023-08-29"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d dateTimeString.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" LocalDate.parse(parts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" LocalTime.parse(parts[1], DateTimeFormatter.ofPattern(\"HH:mm\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" return true;","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" } catch (Exception e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" return false;","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" public void parseDateTime(String dateTime) {","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" if (isValidDate(dateTime)) {","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d dateTime.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" byDate \u003d LocalDate.parse(parts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" byTime \u003d LocalTime.parse(parts[1], DateTimeFormatter.ofPattern(\"HH:mm\"));","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-22"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" if (byDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" return \"[D]\" + super.toString() + \" (by: \" + byDate.format(DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"))","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" + \" \" + byTime.format(DateTimeFormatter.ofPattern(\"HH:mm\")) + \")\";","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" return \"[D]\" + super.toString() + \" (by: \" + byDateTimeString + \")\";","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" if (byDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" return \"D,\" + (isDone ? \"1\" : \"0\") + \",\" + description + \",\" + byDate + \" \" + byTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" return \"D,\" + (isDone ? \"1\" : \"0\") + \",\" + description + \",\" + byDateTimeString;","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":61}},{"path":"src/main/java/duke/Duke.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import javafx.application.Platform;","lastModifiedDate":"2023-09-27"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import javafx.geometry.Pos;","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.Scene;","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.Label;","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"import javafx.stage.Stage;","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-22"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.Button;","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.HBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.ScrollPane;","lastModifiedDate":"2023-09-05"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.control.TextField;","lastModifiedDate":"2023-09-05"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.image.Image;","lastModifiedDate":"2023-09-05"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.image.ImageView;","lastModifiedDate":"2023-09-05"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.input.KeyCode;","lastModifiedDate":"2023-09-05"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.AnchorPane;","lastModifiedDate":"2023-09-05"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.VBox;","lastModifiedDate":"2023-09-05"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":"import javafx.scene.layout.Region;","lastModifiedDate":"2023-09-05"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":"import java.io.File;","lastModifiedDate":"2023-09-27"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-09-27"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-09-27"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":"import java.nio.file.Paths;","lastModifiedDate":"2023-09-27"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":"import java.io.InputStream;","lastModifiedDate":"2023-09-27"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" * Duke is a task management chatbot GUI that allows users to manage their tasks","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" * including todos, deadlines, and events.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":"public class Duke extends Application {","lastModifiedDate":"2023-09-05"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" private ScrollPane scrollPane;","lastModifiedDate":"2023-09-05"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" private VBox dialogContainer;","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" private TextField userInput;","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" private Button sendButton;","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" private Scene scene;","lastModifiedDate":"2023-09-05"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" private String outputText;","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-09-05"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" public void start(Stage stage) {","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" // Define the file path where duke.txt should be stored","lastModifiedDate":"2023-09-27"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" String filePath \u003d \"data/duke.txt\";","lastModifiedDate":"2023-09-27"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" // Check if the directory exists, and if not, create it","lastModifiedDate":"2023-09-27"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" File dataDirectory \u003d new File(\"data\");","lastModifiedDate":"2023-09-27"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" if (!dataDirectory.exists()) {","lastModifiedDate":"2023-09-27"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" dataDirectory.mkdirs();","lastModifiedDate":"2023-09-27"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-27"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" // Check if the file exists, and if not, create it","lastModifiedDate":"2023-09-27"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" if (!Files.exists(Paths.get(filePath))) {","lastModifiedDate":"2023-09-27"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-09-27"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" Files.createFile(Paths.get(filePath));","lastModifiedDate":"2023-09-27"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-09-27"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" e.printStackTrace();","lastModifiedDate":"2023-09-27"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-27"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-27"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" Storage storage \u003d new Storage(filePath);","lastModifiedDate":"2023-09-27"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-27"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-29"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The storage and taskList objects should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" assert storage !\u003d null : \"Storage is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" assert taskList !\u003d null : \"TaskList is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" Ui.getGreeting();","lastModifiedDate":"2023-09-05"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e loadedTasks \u003d storage.loadTasks();","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" taskList.setTasks(loadedTasks);","lastModifiedDate":"2023-08-29"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" scrollPane \u003d new ScrollPane();","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" dialogContainer \u003d new VBox();","lastModifiedDate":"2023-09-05"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setContent(dialogContainer);","lastModifiedDate":"2023-09-05"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" userInput \u003d new TextField();","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" sendButton \u003d new Button(\"Send\");","lastModifiedDate":"2023-09-05"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" AnchorPane mainLayout \u003d new AnchorPane();","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" mainLayout.getChildren().addAll(scrollPane, userInput, sendButton);","lastModifiedDate":"2023-09-05"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" scene \u003d new Scene(mainLayout);","lastModifiedDate":"2023-09-05"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" final Image logoImage \u003d new Image(getClass().getResourceAsStream(\"/images/picture.png\"));","lastModifiedDate":"2023-09-27"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" ImageView botGreetingLogoImageView \u003d new ImageView(logoImage);","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" botGreetingLogoImageView.setFitWidth(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" botGreetingLogoImageView.setFitHeight(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" Label greetingLabel \u003d new Label(Ui.getGreeting());","lastModifiedDate":"2023-09-05"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" HBox botGreetingMessage \u003d new HBox(botGreetingLogoImageView, greetingLabel);","lastModifiedDate":"2023-09-05"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" botGreetingMessage.setAlignment(Pos.CENTER_LEFT);","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" dialogContainer.getChildren().addAll(botGreetingMessage);","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" sendButton.setOnAction(event -\u003e {","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" String inputText \u003d userInput.getText();","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" if (inputText.equalsIgnoreCase(\"bye\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" storage.saveTasks(taskList.getTasks());","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d Ui.getByeMessage();","lastModifiedDate":"2023-09-05"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" Platform.exit();","lastModifiedDate":"2023-09-27"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" } else if (inputText.equalsIgnoreCase(\"list\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d Ui.getList(taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" } else if (inputText.startsWith(\"find\")) {","lastModifiedDate":"2023-09-05"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" String keyword \u003d inputText.substring(\"find\".length()).trim();","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d taskList.findTasksByKeyword(keyword);","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-22"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" outputText \u003d Parser.parseAndAddTask(inputText, taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" if (!inputText.isEmpty()) {","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":" ImageView botLogoImageView \u003d new ImageView(logoImage);","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" botLogoImageView.setFitWidth(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" botLogoImageView.setFitHeight(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" ImageView userLogoImageView \u003d new ImageView(logoImage);","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" userLogoImageView.setFitWidth(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" userLogoImageView.setFitHeight(40);","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":" Label userLabel \u003d new Label(inputText);","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"ryanongwx"},"content":" userLabel.setStyle(\"-fx-background-color: lightblue; -fx-border-radius: 5; -fx-padding: 5px;\");","lastModifiedDate":"2023-09-05"},{"lineNumber":123,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"ryanongwx"},"content":" Label botLabel \u003d new Label(outputText);","lastModifiedDate":"2023-09-05"},{"lineNumber":125,"author":{"gitId":"ryanongwx"},"content":" botLabel.setStyle(\"-fx-background-color: lightgray; -fx-border-radius: 5; -fx-padding: 5px;\");","lastModifiedDate":"2023-09-05"},{"lineNumber":126,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":127,"author":{"gitId":"ryanongwx"},"content":" HBox userMessage \u003d new HBox(userLogoImageView, userLabel);","lastModifiedDate":"2023-09-05"},{"lineNumber":128,"author":{"gitId":"ryanongwx"},"content":" HBox botMessage \u003d new HBox(botLabel, botLogoImageView);","lastModifiedDate":"2023-09-05"},{"lineNumber":129,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":130,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The userMessage and botMessage should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":131,"author":{"gitId":"ryanongwx"},"content":" assert userMessage !\u003d null : \"User message is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":132,"author":{"gitId":"ryanongwx"},"content":" assert botMessage !\u003d null : \"Bot message is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":133,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":134,"author":{"gitId":"ryanongwx"},"content":" userMessage.setAlignment(Pos.CENTER_RIGHT);","lastModifiedDate":"2023-09-20"},{"lineNumber":135,"author":{"gitId":"ryanongwx"},"content":" botMessage.setAlignment(Pos.CENTER_LEFT);","lastModifiedDate":"2023-09-20"},{"lineNumber":136,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":137,"author":{"gitId":"ryanongwx"},"content":" dialogContainer.getChildren().addAll(userMessage, botMessage);","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":139,"author":{"gitId":"ryanongwx"},"content":" userInput.clear();","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":141,"author":{"gitId":"ryanongwx"},"content":" });","lastModifiedDate":"2023-09-05"},{"lineNumber":142,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"ryanongwx"},"content":" userInput.setOnKeyPressed(event -\u003e {","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"ryanongwx"},"content":" if (event.getCode() \u003d\u003d KeyCode.ENTER) {","lastModifiedDate":"2023-09-05"},{"lineNumber":145,"author":{"gitId":"ryanongwx"},"content":" sendButton.fire();","lastModifiedDate":"2023-09-05"},{"lineNumber":146,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":147,"author":{"gitId":"ryanongwx"},"content":" });","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"ryanongwx"},"content":" stage.setScene(scene);","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"ryanongwx"},"content":" stage.show();","lastModifiedDate":"2023-09-05"},{"lineNumber":151,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":152,"author":{"gitId":"ryanongwx"},"content":" stage.setTitle(\"RemindMe\");","lastModifiedDate":"2023-09-20"},{"lineNumber":153,"author":{"gitId":"ryanongwx"},"content":" stage.setResizable(false);","lastModifiedDate":"2023-09-05"},{"lineNumber":154,"author":{"gitId":"ryanongwx"},"content":" stage.setMinHeight(600.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":155,"author":{"gitId":"ryanongwx"},"content":" stage.setMinWidth(400.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":156,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":157,"author":{"gitId":"ryanongwx"},"content":" mainLayout.setPrefSize(400.0, 600.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":158,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":159,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setPrefSize(385, 535);","lastModifiedDate":"2023-09-05"},{"lineNumber":160,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);","lastModifiedDate":"2023-09-05"},{"lineNumber":161,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);","lastModifiedDate":"2023-09-05"},{"lineNumber":162,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":163,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setVvalue(1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":164,"author":{"gitId":"ryanongwx"},"content":" scrollPane.setFitToWidth(true);","lastModifiedDate":"2023-09-05"},{"lineNumber":165,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":166,"author":{"gitId":"ryanongwx"},"content":" dialogContainer.setPrefHeight(Region.USE_COMPUTED_SIZE);","lastModifiedDate":"2023-09-05"},{"lineNumber":167,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":168,"author":{"gitId":"ryanongwx"},"content":" userInput.setPrefWidth(325.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":169,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":170,"author":{"gitId":"ryanongwx"},"content":" sendButton.setPrefWidth(55.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":171,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":172,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setTopAnchor(scrollPane, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":173,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":174,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setBottomAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":175,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setRightAnchor(sendButton, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":176,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":177,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setLeftAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":178,"author":{"gitId":"ryanongwx"},"content":" AnchorPane.setBottomAnchor(userInput, 1.0);","lastModifiedDate":"2023-09-05"},{"lineNumber":179,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":180,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":181,"author":{"gitId":"ryanongwx"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-11"},{"lineNumber":182,"author":{"gitId":"ryanongwx"},"content":" launch(args);","lastModifiedDate":"2023-09-11"},{"lineNumber":183,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":184,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"ryanongwx":182,"-":2}},{"path":"src/main/java/duke/Event.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeParseException;","lastModifiedDate":"2023-08-29"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" * Represents an event task that occurs within a specified date and time range.","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" * Extends the base class Task.","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"public class Event extends Task {","lastModifiedDate":"2023-08-22"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" protected LocalDate fromDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" protected LocalTime fromTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" protected LocalDate toDate;","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" protected LocalTime toTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" protected String from;","lastModifiedDate":"2023-08-22"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" protected String to;","lastModifiedDate":"2023-08-22"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" * Constructs an event task with description and date-time range.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" * @param from The starting date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" * @param to The ending date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" public Event(String description, boolean isDone, String from, String to) {","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" parseDateTime(from, to);","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" this.from \u003d from;","lastModifiedDate":"2023-08-22"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" this.to \u003d to;","lastModifiedDate":"2023-08-22"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" * Checks if a given date-time string is in a valid format.","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" * @param dateTimeString The date-time string to be checked.","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" * @return True if the date-time string is in a valid format, otherwise false.","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" public boolean isValidDate(String dateTimeString) {","lastModifiedDate":"2023-08-29"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d dateTimeString.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" LocalDate.parse(parts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" LocalTime.parse(parts[1], DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" return true;","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" } catch (DateTimeParseException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" return false;","lastModifiedDate":"2023-08-29"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" * Parses the given date-time strings into LocalDate and LocalTime objects.","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" * @param fromdateTime The starting date-time string of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" * @param todateTime The ending date-time string of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" public void parseDateTime(String fromdateTime, String todateTime) {","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" if (isValidDate(fromdateTime) \u0026\u0026 isValidDate(todateTime)) {","lastModifiedDate":"2023-08-29"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" String[] fromparts \u003d fromdateTime.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" fromDate \u003d LocalDate.parse(fromparts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" fromTime \u003d LocalTime.parse(fromparts[1], DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" String[] toparts \u003d todateTime.split(\" \");","lastModifiedDate":"2023-08-29"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" toDate \u003d LocalDate.parse(toparts[0], DateTimeFormatter.ofPattern(\"yyyy-MM-dd\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" toTime \u003d LocalTime.parse(toparts[1], DateTimeFormatter.ofPattern(\"HHmm\"));","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" * Generates a string representation of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" * @return A formatted string describing the event task, including date and","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" * time.","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-22"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" if (fromDate !\u003d null \u0026\u0026 toDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" return \"[E]\" + super.toString() + \" (from: \" + fromDate.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"))","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" + \" \" + fromTime.format(DateTimeFormatter.ofPattern(\"h:mm a\")) + \" to: \"","lastModifiedDate":"2023-08-29"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" + toDate.format(DateTimeFormatter.ofPattern(\"MMM d yyyy\"))","lastModifiedDate":"2023-08-29"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" + \" \" + toTime.format(DateTimeFormatter.ofPattern(\"h:mm a\")) + \")\";","lastModifiedDate":"2023-08-29"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" return \"[E]\" + super.toString() + \" (from: \" + from + \" to: \"","lastModifiedDate":"2023-08-29"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" + to + \")\";","lastModifiedDate":"2023-08-29"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" * Converts the event task to a string format suitable for saving.","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" * @return A string representation of the event task for saving purposes.","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" if (fromDate !\u003d null \u0026\u0026 toDate !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" return \"E,\" + isDone + \",\" + description + \",\" + fromDate + \" \" + fromTime + \",\" + toDate + \" \" + toTime;","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" } else {","lastModifiedDate":"2023-08-29"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" return \"E,\" + isDone + \",\" + description + \",\" + from + \",\" + to;","lastModifiedDate":"2023-08-29"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":105}},{"path":"src/main/java/duke/Launcher.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-09-05"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import javafx.application.Application;","lastModifiedDate":"2023-09-05"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-09-05"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":" * A launcher class to workaround classpath issues.","lastModifiedDate":"2023-09-05"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-09-05"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"public class Launcher {","lastModifiedDate":"2023-09-05"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-09-05"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" Application.launch(Duke.class, args);","lastModifiedDate":"2023-09-05"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-05"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-09-05"}],"authorContributionMap":{"ryanongwx":12}},{"path":"src/main/java/duke/Parser.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":" * The Parser class handles the parsing of user input commands and performs","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":" * corresponding actions.","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"public class Parser {","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_TODO \u003d \"todo\";","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_DEADLINE \u003d \"deadline\";","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_EVENT \u003d \"event\";","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_DELETE \u003d \"delete\";","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_MARK \u003d \"mark\";","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" public static final String COMMAND_UNMARK \u003d \"unmark\";","lastModifiedDate":"2023-08-29"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds the corresponding task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" * @param userInput The user input command.","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the input command is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" public static String parseAndAddTask(String userInput, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" String[] words \u003d userInput.split(\" \", 2);","lastModifiedDate":"2023-08-29"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" switch (words[0].toLowerCase()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_TODO:","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" return addTodoTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_DEADLINE:","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" return addDeadlineTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_EVENT:","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" return addEventTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_MARK:","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" return parseMarkTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_UNMARK:","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" return parseUnmarkTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" case COMMAND_DELETE:","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" return parseDeleteTask(words[1], taskList);","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" default:","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" throw new IllegalArgumentException(\"Invalid command: \" + words[0]);","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds a todo task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the description of the todo task is","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" * empty.","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" private static String addTodoTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" if (args.isEmpty()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" throw new IllegalArgumentException(\"☹ OOPS!!! The description of a todo cannot be empty.\");","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" return taskList.addTodo(args, false);","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds a deadline task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the deadline format is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" private static String addDeadlineTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d args.split(\" /by \");","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" if (parts.length !\u003d 2 || parts[0].isEmpty() || parts[1].isEmpty()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" throw new IllegalArgumentException(\"☹ OOPS!!! Invalid deadline format.\");","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" return taskList.addDeadline(parts[0], false, parts[1]);","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and adds an event task to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list to which the task will be added.","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" * @throws IllegalArgumentException If the event format is invalid.","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" private static String addEventTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" String[] parts \u003d args.split(\" /from \");","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" String from \u003d parts[1].split(\" /to \")[0];","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" String to \u003d parts[1].split(\" /to \")[1];","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" return taskList.addEvent(parts[0], false, from, to);","lastModifiedDate":"2023-09-05"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and marks a task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" private static String parseMarkTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" int index \u003d Integer.parseInt(args) - 1;","lastModifiedDate":"2023-08-29"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":" return taskList.markTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and unmarks a task.","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" private static String parseUnmarkTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" int index \u003d Integer.parseInt(args) - 1;","lastModifiedDate":"2023-08-29"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" return taskList.unmarkTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":" * Parses the user input and deletes a task.","lastModifiedDate":"2023-08-30"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" * @param args The user input arguments.","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" private static String parseDeleteTask(String args, TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" int index \u003d Integer.parseInt(args) - 1;","lastModifiedDate":"2023-08-29"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" return taskList.removeTask(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":121}},{"path":"src/main/java/duke/Storage.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.io.*;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" * Represents a class that handles the loading and saving of tasks to a file.","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"public class Storage {","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" private String filePath;","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" * Constructs a Storage object with the specified file path.","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" * @param filePath The path to the file for loading and saving tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" this.filePath \u003d filePath;","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" * Loads tasks from the file and returns them as an ArrayList.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" * @return An ArrayList containing the loaded tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" public ArrayList\u003cTask\u003e loadTasks() {","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e tasks \u003d new ArrayList\u003cTask\u003e();","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" try (BufferedReader reader \u003d new BufferedReader(new FileReader(filePath))) {","lastModifiedDate":"2023-08-29"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" String line;","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" while ((line \u003d reader.readLine()) !\u003d null) {","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" String[] values \u003d line.split(\",\");","lastModifiedDate":"2023-08-29"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" String taskType \u003d values[0].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" boolean isDone \u003d values[1].trim().equals(\"true\");","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" String description \u003d values[2].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" if (taskType.equals(\"T\")) {","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" tasks.add(new ToDo(description, isDone));","lastModifiedDate":"2023-08-29"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" } else if (taskType.equals(\"D\")) {","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" String byDateAndTime \u003d values[3];","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" System.out.println(byDateAndTime);","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" tasks.add(new Deadline(description, isDone, byDateAndTime));","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" } else if (taskType.equals(\"E\")) {","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" String from \u003d values[3].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" String to \u003d values[4].trim();","lastModifiedDate":"2023-08-29"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" tasks.add(new Event(description, isDone, from, to));","lastModifiedDate":"2023-08-29"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" System.out.println(\"Error loading tasks: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" return tasks;","lastModifiedDate":"2023-08-29"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" * Saves tasks to the file.","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" * @param tasks An ArrayList containing tasks to be saved.","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" public void saveTasks(ArrayList\u003cTask\u003e tasks) {","lastModifiedDate":"2023-08-29"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" try (BufferedWriter writer \u003d new BufferedWriter(new FileWriter(filePath))) {","lastModifiedDate":"2023-08-29"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-08-29"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" String line \u003d task.toSaveString();","lastModifiedDate":"2023-08-29"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" writer.write(line);","lastModifiedDate":"2023-08-29"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" writer.newLine();","lastModifiedDate":"2023-08-29"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-29"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" System.out.println(\"Error saving tasks: \" + e.getMessage());","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":70}},{"path":"src/main/java/duke/Task.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":" * Represents a task with a description and completion status.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"public class Task {","lastModifiedDate":"2023-08-22"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" protected String description;","lastModifiedDate":"2023-08-22"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" protected boolean isDone;","lastModifiedDate":"2023-08-22"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" protected static int total \u003d 0;","lastModifiedDate":"2023-08-22"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" * Constructs a task with the given description and completion status.","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" * @param isDone The completion status of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" public Task(String description, boolean isDone) {","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" this.description \u003d description;","lastModifiedDate":"2023-08-22"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" this.isDone \u003d isDone;","lastModifiedDate":"2023-08-29"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" Task.total +\u003d 1;","lastModifiedDate":"2023-08-22"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" * Gets the status icon of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" * @return The status icon (\"X\" if done, \" \" if not done).","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" public String getStatusIcon() {","lastModifiedDate":"2023-08-22"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" return (isDone ? \"X\" : \" \"); // mark done task with X","lastModifiedDate":"2023-08-22"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" public String getDescription() {","lastModifiedDate":"2023-09-11"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" return this.description;","lastModifiedDate":"2023-09-11"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" * Converts the task to a formatted string.","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" * @return The formatted string representation of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" return \"[\" + this.getStatusIcon() + \"] \" + this.description; // mark done task with X","lastModifiedDate":"2023-08-22"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" * Marks the task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" public void markAsDone() {","lastModifiedDate":"2023-08-22"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" this.isDone \u003d true;","lastModifiedDate":"2023-08-22"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" * Marks the task as not done.","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" public void unmark() {","lastModifiedDate":"2023-08-22"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" this.isDone \u003d false;","lastModifiedDate":"2023-08-22"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" * Gets the total number of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" * @return The total number of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" public static int getTotal() {","lastModifiedDate":"2023-08-22"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" return Task.total;","lastModifiedDate":"2023-08-22"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" * Removes the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" public void remove() {","lastModifiedDate":"2023-08-22"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" Task.total -\u003d 1;","lastModifiedDate":"2023-08-22"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" * Converts the task to a string for saving.","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" * @return The formatted string for saving the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" return \"\";","lastModifiedDate":"2023-08-29"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" * Checks if the task is done.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" * @return True if the task is done, false otherwise.","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" public boolean isDone() {","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" return isDone;","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":93}},{"path":"src/main/java/duke/TaskList.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":" * Represents a list of tasks with various operations for managing tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"public class TaskList {","lastModifiedDate":"2023-08-29"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" private ArrayList\u003cTask\u003e tasks;","lastModifiedDate":"2023-08-29"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" * Constructs an empty TaskList.","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" public TaskList() {","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" tasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" * Adds a deadline task to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the deadline task.","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" * @param byDateAndTime The date and time of the deadline.","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" public String addDeadline(String description, boolean isDone, String byDateAndTime) {","lastModifiedDate":"2023-09-05"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" Deadline deadline \u003d new Deadline(description, isDone, byDateAndTime);","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" tasks.add(deadline);","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" return Ui.getAddConfirmation(deadline, this.getTotalTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" * Adds a todo task to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" public String addTodo(String description, boolean isDone) {","lastModifiedDate":"2023-09-05"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" ToDo todo \u003d new ToDo(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" tasks.add(todo);","lastModifiedDate":"2023-08-29"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" return Ui.getAddConfirmation(todo, this.getTotalTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" * Adds an event task to the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the event task.","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" * @param from The starting date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" * @param to The ending date and time of the event.","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying event added to tasklist.","lastModifiedDate":"2023-09-05"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" public String addEvent(String description, boolean isDone, String from, String to) {","lastModifiedDate":"2023-09-05"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" Event event \u003d new Event(description, isDone, from, to);","lastModifiedDate":"2023-08-29"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" tasks.add(event);","lastModifiedDate":"2023-08-29"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" return Ui.getAddConfirmation(event, this.getTotalTasks());","lastModifiedDate":"2023-09-05"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" * Removes a task from the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" * @param index The index of the task to be removed.","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying event removed from tasklist.","lastModifiedDate":"2023-09-05"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":" public String removeTask(int index) {","lastModifiedDate":"2023-09-05"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" Task tmp \u003d tasks.get(index);","lastModifiedDate":"2023-09-05"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" int tmp1 \u003d this.getTotalTasks() - 1;","lastModifiedDate":"2023-09-05"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" if (index \u003e\u003d 0 \u0026\u0026 index \u003c tasks.size()) {","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" tasks.remove(index);","lastModifiedDate":"2023-08-29"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" return Ui.getRemoved(tmp, tmp1);","lastModifiedDate":"2023-09-05"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-05"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" * Returns the list of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" * @return The list of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" public ArrayList\u003cTask\u003e getTasks() {","lastModifiedDate":"2023-08-29"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" return tasks;","lastModifiedDate":"2023-08-29"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" * Returns the total number of tasks in the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" * @return The total number of tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" public int getTotalTasks() {","lastModifiedDate":"2023-08-29"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" return tasks.size();","lastModifiedDate":"2023-08-29"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" * Marks a task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" * @param index The index of the task to be marked as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying tasked marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" public String markTask(int index) {","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" tasks.get(index).markAsDone();","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":" return Ui.getMarkedAsDone(tasks.get(index));","lastModifiedDate":"2023-09-05"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" * Unmarks a task as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" * @param index The index of the task to be unmarked.","lastModifiedDate":"2023-08-30"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" * * @return A message displaying tasked unmarked as not done.","lastModifiedDate":"2023-09-05"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" public String unmarkTask(int index) {","lastModifiedDate":"2023-09-05"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":" tasks.get(index).unmark();","lastModifiedDate":"2023-08-29"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" return Ui.getUnmarked(tasks.get(index));","lastModifiedDate":"2023-09-05"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" * Sets the tasks in the list to the given tasks.","lastModifiedDate":"2023-08-30"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The ArrayList of tasks to be set.","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" public void setTasks(ArrayList\u003cTask\u003e taskList) {","lastModifiedDate":"2023-08-29"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" tasks.addAll(taskList);","lastModifiedDate":"2023-08-29"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":122,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":124,"author":{"gitId":"ryanongwx"},"content":" * Finds tasks in the task list that match a given keyword and displays them to","lastModifiedDate":"2023-08-30"},{"lineNumber":125,"author":{"gitId":"ryanongwx"},"content":" * the user.","lastModifiedDate":"2023-08-30"},{"lineNumber":126,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":127,"author":{"gitId":"ryanongwx"},"content":" * @param keyword The keyword to search for in task descriptions.","lastModifiedDate":"2023-08-30"},{"lineNumber":128,"author":{"gitId":"ryanongwx"},"content":" * @return A message all tasks found.","lastModifiedDate":"2023-09-05"},{"lineNumber":129,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":130,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"ryanongwx"},"content":" public String findTasksByKeyword(String keyword) {","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e matchingTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"ryanongwx"},"content":" for (Task task : this.tasks) {","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"ryanongwx"},"content":" if (task.toSaveString().contains(keyword)) {","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"ryanongwx"},"content":" matchingTasks.add(task);","lastModifiedDate":"2023-08-30"},{"lineNumber":136,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":138,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":139,"author":{"gitId":"ryanongwx"},"content":" return Ui.getMatchingTasks(matchingTasks);","lastModifiedDate":"2023-09-05"},{"lineNumber":140,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":141,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":141}},{"path":"src/main/java/duke/ToDo.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":" * Represents a todo task that can be added to the task list.","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"public class ToDo extends Task {","lastModifiedDate":"2023-08-22"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" * Constructs a todo task with the specified description and status.","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" * @param description The description of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" * @param isDone Indicates whether the task is done or not.","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" public ToDo(String description, boolean isDone) {","lastModifiedDate":"2023-08-29"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" super(description, isDone);","lastModifiedDate":"2023-08-29"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-22"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" * Returns a string representation of the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" * @return A string containing the status icon and description of the task.","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-22"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" public String toString() {","lastModifiedDate":"2023-08-22"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" return \"[T]\" + super.toString();","lastModifiedDate":"2023-08-22"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-22"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" * Returns a formatted string for saving the todo task.","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" * @return A string containing the task type, status, and description.","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" @Override","lastModifiedDate":"2023-08-29"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" public String toSaveString() {","lastModifiedDate":"2023-08-29"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" return \"T,\" + isDone + \",\" + description;","lastModifiedDate":"2023-08-29"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":37}},{"path":"src/main/java/duke/Ui.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-09-11"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-09-11"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import java.time.temporal.ChronoUnit;","lastModifiedDate":"2023-09-11"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"/**","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":" * Represents the user interface for interacting with the chatbot.","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"public class Ui {","lastModifiedDate":"2023-08-29"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" * Constructs a new UI instance with a scanner for user input.","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" public Ui() {","lastModifiedDate":"2023-08-29"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" * Returns a greeting message.","lastModifiedDate":"2023-09-05"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" public static String getGreeting() {","lastModifiedDate":"2023-09-05"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" return \"Hello! I\u0027m yourChatBot\\n\" +","lastModifiedDate":"2023-09-05"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" \"What can I do for you?\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":" * Returns a message displaying the list of tasks in the task list.","lastModifiedDate":"2023-09-05"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" * @param taskList The task list containing the tasks to be displayed.","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" * @return A message displaying the list of tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" public static String getList(TaskList taskList) {","lastModifiedDate":"2023-09-05"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" StringBuilder todolistoutput \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The taskList should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" assert taskList !\u003d null : \"TaskList is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e tasks \u003d taskList.getTasks();","lastModifiedDate":"2023-09-11"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" // Add a section for upcoming deadlines","lastModifiedDate":"2023-09-11"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(\"Upcoming Deadlines:\\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" for (Task task : tasks) {","lastModifiedDate":"2023-09-11"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" if (task instanceof Deadline) {","lastModifiedDate":"2023-09-11"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" Deadline deadline \u003d (Deadline) task;","lastModifiedDate":"2023-09-11"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" LocalDate currentDate \u003d LocalDate.now();","lastModifiedDate":"2023-09-11"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":" LocalDate taskDate \u003d deadline.getDate();","lastModifiedDate":"2023-09-11"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" // Check if currentDate and taskDate are not null","lastModifiedDate":"2023-09-11"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" System.out.println(taskDate);","lastModifiedDate":"2023-09-11"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" if (currentDate !\u003d null \u0026\u0026 taskDate !\u003d null) {","lastModifiedDate":"2023-09-11"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":" long daysUntilDeadline \u003d ChronoUnit.DAYS.between(currentDate, taskDate);","lastModifiedDate":"2023-09-11"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" // Display the task name and days until the deadline","lastModifiedDate":"2023-09-11"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(daysUntilDeadline).append(\" days left - \").append(deadline.getDescription())","lastModifiedDate":"2023-09-11"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" .append(\u0027\\n\u0027);","lastModifiedDate":"2023-09-11"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-09-11"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" // Add a separator between upcoming deadlines and the existing task list","lastModifiedDate":"2023-09-11"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(\"\\nTask List:\\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c tasks.size(); i++) {","lastModifiedDate":"2023-09-11"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" todolistoutput.append(i + 1).append(\". \").append(tasks.get(i)).append(\"\\n\");","lastModifiedDate":"2023-09-11"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The output should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":" assert todolistoutput.toString() !\u003d null : \"List output is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":" return todolistoutput.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" * Returns a message indicating that a task has been marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been marked as done.","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" * @return A message indicating the task has been marked as done.","lastModifiedDate":"2023-09-05"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":" public static String getMarkedAsDone(Task task) {","lastModifiedDate":"2023-09-05"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The task should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" return \"Nice! I\u0027ve marked this task as done:\\n\" + task;","lastModifiedDate":"2023-09-05"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":88,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":89,"author":{"gitId":"ryanongwx"},"content":" * Returns a message indicating that a task has been marked as not done.","lastModifiedDate":"2023-09-05"},{"lineNumber":90,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":91,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been marked as not done.","lastModifiedDate":"2023-08-30"},{"lineNumber":92,"author":{"gitId":"ryanongwx"},"content":" * @return A message indicating the task has been marked as not done.","lastModifiedDate":"2023-09-05"},{"lineNumber":93,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":94,"author":{"gitId":"ryanongwx"},"content":" public static String getUnmarked(Task task) {","lastModifiedDate":"2023-09-05"},{"lineNumber":95,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The task should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":96,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":97,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":98,"author":{"gitId":"ryanongwx"},"content":" return \"OK, I\u0027ve marked this task as not done yet:\\n\" + task + \"\\n\";","lastModifiedDate":"2023-09-05"},{"lineNumber":99,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":100,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":101,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":102,"author":{"gitId":"ryanongwx"},"content":" * Returns a message indicating that a task has been removed.","lastModifiedDate":"2023-09-05"},{"lineNumber":103,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":104,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been removed.","lastModifiedDate":"2023-08-30"},{"lineNumber":105,"author":{"gitId":"ryanongwx"},"content":" * @param totalTasks The total number of tasks remaining.","lastModifiedDate":"2023-08-30"},{"lineNumber":106,"author":{"gitId":"ryanongwx"},"content":" * @return A message indicating the task has been removed.","lastModifiedDate":"2023-09-05"},{"lineNumber":107,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":108,"author":{"gitId":"ryanongwx"},"content":" public static String getRemoved(Task task, int totalTasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":109,"author":{"gitId":"ryanongwx"},"content":" // Assertions: The task and totalTasks should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":110,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":111,"author":{"gitId":"ryanongwx"},"content":" assert totalTasks \u003e\u003d 0 : \"TotalTasks is negative.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":112,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":113,"author":{"gitId":"ryanongwx"},"content":" return \"Noted. I\u0027ve removed this task:\\n\" + task + \"\\n\" +","lastModifiedDate":"2023-09-05"},{"lineNumber":114,"author":{"gitId":"ryanongwx"},"content":" \"Now you have \" + totalTasks + \" tasks in the list.\";","lastModifiedDate":"2023-09-05"},{"lineNumber":115,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":116,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":117,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":118,"author":{"gitId":"ryanongwx"},"content":" * Returns an error message.","lastModifiedDate":"2023-09-05"},{"lineNumber":119,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":120,"author":{"gitId":"ryanongwx"},"content":" * @param errorMessage The error message to be displayed.","lastModifiedDate":"2023-08-30"},{"lineNumber":121,"author":{"gitId":"ryanongwx"},"content":" * @return An error message.","lastModifiedDate":"2023-09-05"},{"lineNumber":122,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":123,"author":{"gitId":"ryanongwx"},"content":" public static String getError(String errorMessage) {","lastModifiedDate":"2023-09-05"},{"lineNumber":124,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The errorMessage should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":125,"author":{"gitId":"ryanongwx"},"content":" assert errorMessage !\u003d null : \"Error message is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":126,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":127,"author":{"gitId":"ryanongwx"},"content":" return errorMessage;","lastModifiedDate":"2023-09-05"},{"lineNumber":128,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":129,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":130,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":131,"author":{"gitId":"ryanongwx"},"content":" * Returns a confirmation message after adding a task.","lastModifiedDate":"2023-09-05"},{"lineNumber":132,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":133,"author":{"gitId":"ryanongwx"},"content":" * @param task The task that has been added.","lastModifiedDate":"2023-08-30"},{"lineNumber":134,"author":{"gitId":"ryanongwx"},"content":" * @param totalTasks The total number of tasks in the list.","lastModifiedDate":"2023-08-30"},{"lineNumber":135,"author":{"gitId":"ryanongwx"},"content":" * @return A confirmation message.","lastModifiedDate":"2023-09-05"},{"lineNumber":136,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":137,"author":{"gitId":"ryanongwx"},"content":" public static String getAddConfirmation(Task task, int totalTasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":138,"author":{"gitId":"ryanongwx"},"content":" // Assertions: The task and totalTasks should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":139,"author":{"gitId":"ryanongwx"},"content":" assert task !\u003d null : \"Task is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":140,"author":{"gitId":"ryanongwx"},"content":" assert totalTasks \u003e\u003d 0 : \"TotalTasks is negative.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":141,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":142,"author":{"gitId":"ryanongwx"},"content":" return \"Got it. I\u0027ve added this task:\\n\" + task + \"\\n\" +","lastModifiedDate":"2023-09-05"},{"lineNumber":143,"author":{"gitId":"ryanongwx"},"content":" \"Now you have \" + totalTasks + \" tasks in the list.\";","lastModifiedDate":"2023-09-05"},{"lineNumber":144,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":145,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-29"},{"lineNumber":146,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":147,"author":{"gitId":"ryanongwx"},"content":" * Returns a farewell message.","lastModifiedDate":"2023-09-05"},{"lineNumber":148,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-09-05"},{"lineNumber":149,"author":{"gitId":"ryanongwx"},"content":" * @return A farewell message.","lastModifiedDate":"2023-09-05"},{"lineNumber":150,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":151,"author":{"gitId":"ryanongwx"},"content":" public static String getByeMessage() {","lastModifiedDate":"2023-09-05"},{"lineNumber":152,"author":{"gitId":"ryanongwx"},"content":" return \"Bye. Hope to see you again soon!\";","lastModifiedDate":"2023-09-05"},{"lineNumber":153,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-29"},{"lineNumber":154,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":155,"author":{"gitId":"ryanongwx"},"content":" /**","lastModifiedDate":"2023-08-30"},{"lineNumber":156,"author":{"gitId":"ryanongwx"},"content":" * Returns a list of tasks that match the given keyword to the user.","lastModifiedDate":"2023-09-05"},{"lineNumber":157,"author":{"gitId":"ryanongwx"},"content":" *","lastModifiedDate":"2023-08-30"},{"lineNumber":158,"author":{"gitId":"ryanongwx"},"content":" * @param matchingTasks The list of tasks that match the keyword.","lastModifiedDate":"2023-08-30"},{"lineNumber":159,"author":{"gitId":"ryanongwx"},"content":" * @return A list of matching tasks.","lastModifiedDate":"2023-09-05"},{"lineNumber":160,"author":{"gitId":"ryanongwx"},"content":" */","lastModifiedDate":"2023-08-30"},{"lineNumber":161,"author":{"gitId":"ryanongwx"},"content":" public static String getMatchingTasks(ArrayList\u003cTask\u003e matchingTasks) {","lastModifiedDate":"2023-09-05"},{"lineNumber":162,"author":{"gitId":"ryanongwx"},"content":" StringBuilder matchingTasksOutput \u003d new StringBuilder();","lastModifiedDate":"2023-09-05"},{"lineNumber":163,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":164,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The matchingTasks should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":165,"author":{"gitId":"ryanongwx"},"content":" assert matchingTasks !\u003d null : \"Matching tasks list is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":166,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":167,"author":{"gitId":"ryanongwx"},"content":" matchingTasksOutput.append(\"Here are the matching tasks in your list:\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":168,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c matchingTasks.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":169,"author":{"gitId":"ryanongwx"},"content":" matchingTasksOutput.append(i + 1).append(\". \").append(matchingTasks.get(i)).append(\"\\n\");","lastModifiedDate":"2023-09-05"},{"lineNumber":170,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":171,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":172,"author":{"gitId":"ryanongwx"},"content":" // Assertion: The output should not be null.","lastModifiedDate":"2023-09-11"},{"lineNumber":173,"author":{"gitId":"ryanongwx"},"content":" assert matchingTasksOutput.toString() !\u003d null : \"Matching tasks output is null.\";","lastModifiedDate":"2023-09-11"},{"lineNumber":174,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-09-11"},{"lineNumber":175,"author":{"gitId":"ryanongwx"},"content":" return matchingTasksOutput.toString();","lastModifiedDate":"2023-09-05"},{"lineNumber":176,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":177,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-29"}],"authorContributionMap":{"ryanongwx":177}},{"path":"src/main/resources/data/duke.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"T,false,read book","lastModifiedDate":"2023-08-29"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"E,false,project meeting,2019-10-15 16:00,2019-10-15 20:00","lastModifiedDate":"2023-08-29"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"T,false,join sports club","lastModifiedDate":"2023-08-29"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"E,false,Birthday party,2023-08-30 15:00,2023-08-30 18:00","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"D,0,do ip,2023-10-19 19:00","lastModifiedDate":"2023-09-11"}],"authorContributionMap":{"ryanongwx":5}},{"path":"src/test/java/duke/ParserTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertThrows;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.assertFalse;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"public class ParserTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_AddTodoTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"todo Buy groceries\";","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" assertEquals(1, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0) instanceof ToDo);","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_AddDeadlineTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"deadline Return book /by 2023-12-31\";","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" assertEquals(1, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0) instanceof Deadline);","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_AddEventTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"event Birthday party /from 2023-08-30 15:00 /to 2023-08-30 18:00\";","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" assertEquals(1, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0) instanceof Event);","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_InvalidCommand() {","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"invalidcommand\";","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" assertThrows(IllegalArgumentException.class, () -\u003e {","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" });","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_MarkTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":" taskList.addTodo(\"Test task\", false);","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"mark 1\";","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" assertTrue(taskList.getTasks().get(0).isDone());","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_UnmarkTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" taskList.addTodo(\"Test task\", true);","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"unmark 1\";","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":71,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":72,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":73,"author":{"gitId":"ryanongwx"},"content":" assertFalse(taskList.getTasks().get(0).isDone());","lastModifiedDate":"2023-08-30"},{"lineNumber":74,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":75,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":76,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":77,"author":{"gitId":"ryanongwx"},"content":" public void testParseAndAddTask_DeleteTask() {","lastModifiedDate":"2023-08-30"},{"lineNumber":78,"author":{"gitId":"ryanongwx"},"content":" TaskList taskList \u003d new TaskList();","lastModifiedDate":"2023-08-30"},{"lineNumber":79,"author":{"gitId":"ryanongwx"},"content":" taskList.addTodo(\"Test task\", false);","lastModifiedDate":"2023-08-30"},{"lineNumber":80,"author":{"gitId":"ryanongwx"},"content":" String userInput \u003d \"delete 1\";","lastModifiedDate":"2023-08-30"},{"lineNumber":81,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":82,"author":{"gitId":"ryanongwx"},"content":" Parser.parseAndAddTask(userInput, taskList);","lastModifiedDate":"2023-08-30"},{"lineNumber":83,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":84,"author":{"gitId":"ryanongwx"},"content":" assertEquals(0, taskList.getTotalTasks());","lastModifiedDate":"2023-08-30"},{"lineNumber":85,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":86,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":87,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"ryanongwx":87}},{"path":"src/test/java/duke/StorageTest.java","fileType":"java","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"package duke;","lastModifiedDate":"2023-08-30"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"import static org.junit.jupiter.api.Assertions.*;","lastModifiedDate":"2023-08-30"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-08-30"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"import java.io.IOException;","lastModifiedDate":"2023-08-30"},{"lineNumber":7,"author":{"gitId":"ryanongwx"},"content":"import java.nio.file.Files;","lastModifiedDate":"2023-08-30"},{"lineNumber":8,"author":{"gitId":"ryanongwx"},"content":"import java.nio.file.Path;","lastModifiedDate":"2023-08-30"},{"lineNumber":9,"author":{"gitId":"ryanongwx"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-08-30"},{"lineNumber":10,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":11,"author":{"gitId":"ryanongwx"},"content":"public class StorageTest {","lastModifiedDate":"2023-08-30"},{"lineNumber":12,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":13,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":14,"author":{"gitId":"ryanongwx"},"content":" void testLoadTasks() {","lastModifiedDate":"2023-08-30"},{"lineNumber":15,"author":{"gitId":"ryanongwx"},"content":" // Test loading of tasks from file","lastModifiedDate":"2023-08-30"},{"lineNumber":16,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":17,"author":{"gitId":"ryanongwx"},"content":" Path tempFilePath \u003d Files.createTempFile(null, \".txt\");","lastModifiedDate":"2023-08-30"},{"lineNumber":18,"author":{"gitId":"ryanongwx"},"content":" Storage storage \u003d new Storage(tempFilePath.toString());","lastModifiedDate":"2023-08-30"},{"lineNumber":19,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":20,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e expectedTasks \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":21,"author":{"gitId":"ryanongwx"},"content":" expectedTasks.add(new ToDo(\"Task 1\", true));","lastModifiedDate":"2023-08-30"},{"lineNumber":22,"author":{"gitId":"ryanongwx"},"content":" expectedTasks.add(new Deadline(\"Deadline 1\", false, \"2023-08-29 1800\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":23,"author":{"gitId":"ryanongwx"},"content":" expectedTasks.add(new Event(\"Event 1\", true, \"2023-08-30 0900\", \"2023-08-30 1200\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":24,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":25,"author":{"gitId":"ryanongwx"},"content":" storage.saveTasks(expectedTasks);","lastModifiedDate":"2023-08-30"},{"lineNumber":26,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":27,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e loadedTasks \u003d storage.loadTasks();","lastModifiedDate":"2023-08-30"},{"lineNumber":28,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":29,"author":{"gitId":"ryanongwx"},"content":" assertEquals(expectedTasks.size(), loadedTasks.size());","lastModifiedDate":"2023-08-30"},{"lineNumber":30,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c expectedTasks.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":31,"author":{"gitId":"ryanongwx"},"content":" Task expectedTask \u003d expectedTasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":32,"author":{"gitId":"ryanongwx"},"content":" Task loadedTask \u003d loadedTasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":33,"author":{"gitId":"ryanongwx"},"content":" assertEquals(expectedTask.toSaveString(), loadedTask.toSaveString());","lastModifiedDate":"2023-08-30"},{"lineNumber":34,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":35,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":36,"author":{"gitId":"ryanongwx"},"content":" Files.deleteIfExists(tempFilePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":37,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":38,"author":{"gitId":"ryanongwx"},"content":" fail(\"Exception occurred during testing: \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":39,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":40,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":41,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":42,"author":{"gitId":"ryanongwx"},"content":" @Test","lastModifiedDate":"2023-08-30"},{"lineNumber":43,"author":{"gitId":"ryanongwx"},"content":" void testSaveTasks() {","lastModifiedDate":"2023-08-30"},{"lineNumber":44,"author":{"gitId":"ryanongwx"},"content":" try {","lastModifiedDate":"2023-08-30"},{"lineNumber":45,"author":{"gitId":"ryanongwx"},"content":" // Test saving of todolist to file","lastModifiedDate":"2023-08-30"},{"lineNumber":46,"author":{"gitId":"ryanongwx"},"content":" Path tempFilePath \u003d Files.createTempFile(null, \".txt\");","lastModifiedDate":"2023-08-30"},{"lineNumber":47,"author":{"gitId":"ryanongwx"},"content":" Storage storage \u003d new Storage(tempFilePath.toString());","lastModifiedDate":"2023-08-30"},{"lineNumber":48,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":49,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e tasksToSave \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-08-30"},{"lineNumber":50,"author":{"gitId":"ryanongwx"},"content":" tasksToSave.add(new ToDo(\"Task 1\", true));","lastModifiedDate":"2023-08-30"},{"lineNumber":51,"author":{"gitId":"ryanongwx"},"content":" tasksToSave.add(new Deadline(\"Deadline 1\", false, \"2023-08-29 1800\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":52,"author":{"gitId":"ryanongwx"},"content":" tasksToSave.add(new Event(\"Event 1\", true, \"2023-08-30 0900\", \"2023-08-30 1200\"));","lastModifiedDate":"2023-08-30"},{"lineNumber":53,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":54,"author":{"gitId":"ryanongwx"},"content":" storage.saveTasks(tasksToSave);","lastModifiedDate":"2023-08-30"},{"lineNumber":55,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":56,"author":{"gitId":"ryanongwx"},"content":" ArrayList\u003cTask\u003e loadedTasks \u003d storage.loadTasks();","lastModifiedDate":"2023-08-30"},{"lineNumber":57,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":58,"author":{"gitId":"ryanongwx"},"content":" assertEquals(tasksToSave.size(), loadedTasks.size());","lastModifiedDate":"2023-08-30"},{"lineNumber":59,"author":{"gitId":"ryanongwx"},"content":" for (int i \u003d 0; i \u003c tasksToSave.size(); i++) {","lastModifiedDate":"2023-08-30"},{"lineNumber":60,"author":{"gitId":"ryanongwx"},"content":" Task savedTask \u003d tasksToSave.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":61,"author":{"gitId":"ryanongwx"},"content":" Task loadedTask \u003d loadedTasks.get(i);","lastModifiedDate":"2023-08-30"},{"lineNumber":62,"author":{"gitId":"ryanongwx"},"content":" assertEquals(savedTask.toSaveString(), loadedTask.toSaveString());","lastModifiedDate":"2023-08-30"},{"lineNumber":63,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":64,"author":{"gitId":"ryanongwx"},"content":"","lastModifiedDate":"2023-08-30"},{"lineNumber":65,"author":{"gitId":"ryanongwx"},"content":" Files.deleteIfExists(tempFilePath);","lastModifiedDate":"2023-08-30"},{"lineNumber":66,"author":{"gitId":"ryanongwx"},"content":" } catch (IOException e) {","lastModifiedDate":"2023-08-30"},{"lineNumber":67,"author":{"gitId":"ryanongwx"},"content":" fail(\"Exception occurred during testing: \" + e.getMessage());","lastModifiedDate":"2023-08-30"},{"lineNumber":68,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":69,"author":{"gitId":"ryanongwx"},"content":" }","lastModifiedDate":"2023-08-30"},{"lineNumber":70,"author":{"gitId":"ryanongwx"},"content":"}","lastModifiedDate":"2023-08-30"}],"authorContributionMap":{"ryanongwx":70}},{"path":"text-ui-test/input.txt","fileType":"txt","lines":[{"lineNumber":1,"author":{"gitId":"ryanongwx"},"content":"todo borrow book","lastModifiedDate":"2023-08-22"},{"lineNumber":2,"author":{"gitId":"ryanongwx"},"content":"list","lastModifiedDate":"2023-08-22"},{"lineNumber":3,"author":{"gitId":"ryanongwx"},"content":"deadline return book /by Sunday","lastModifiedDate":"2023-08-22"},{"lineNumber":4,"author":{"gitId":"ryanongwx"},"content":"event project meeting /from Mon 2pm /to 4pm","lastModifiedDate":"2023-08-22"},{"lineNumber":5,"author":{"gitId":"ryanongwx"},"content":"delete 2","lastModifiedDate":"2023-08-22"},{"lineNumber":6,"author":{"gitId":"ryanongwx"},"content":"blah","lastModifiedDate":"2023-08-22"}],"authorContributionMap":{"ryanongwx":6}}] diff --git a/ryanongwx_ip_master/commits.json b/ryanongwx_ip_master/commits.json index 1fdd3f85..88bfbfa2 100644 --- a/ryanongwx_ip_master/commits.json +++ b/ryanongwx_ip_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"ryanongwx":[{"date":"2023-08-22","commitResults":[{"hash":"702b16df0826014e34cc9c102182a11e4f8fc986","isMergeCommit":false,"messageTitle":"Level-0 Rename, Greet, Exit","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":6}}},{"hash":"5eaf67dbf2740611065ff7239230619f77104e4d","isMergeCommit":false,"messageTitle":"Level-1 Echo","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":0}}},{"hash":"9243cb186cc61470eca2d7622ffe5f2482fddf9b","isMergeCommit":false,"messageTitle":"Level-2 Add, List","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":5}}},{"hash":"011dca1454c3fd9c6cd5188a101e460258c8b528","isMergeCommit":false,"messageTitle":"Level-3 Mark as Done","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":46,"deletions":3}}},{"hash":"61ca2597fcfa2cb3a7f8e2b9bc0ceee414453383","isMergeCommit":false,"messageTitle":"Level-4 ToDos, Events, Deadlines","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"java":{"insertions":72,"deletions":9}}},{"hash":"ec3249dac7cb311fb26d671cbd0c69e6a2cdd2d7","isMergeCommit":false,"messageTitle":"A-TextUiTesting","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":0},"java":{"insertions":1,"deletions":1},"sh":{"insertions":0,"deletions":0}}},{"hash":"ec8778cf487d8b6859ea05353ce4bffd59b0839b","isMergeCommit":false,"messageTitle":"Level-5 Handle Errors","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":1},"java":{"insertions":35,"deletions":15}}},{"hash":"31dca0587aefa74bc01921118314b0dedb16ca3e","isMergeCommit":false,"messageTitle":"Level-6 Delete","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":17,"deletions":5}}}]},{"date":"2023-08-29","commitResults":[{"hash":"cc1083c0b637d527a5ba4f46fc4d1255b3c07f08","isMergeCommit":false,"messageTitle":"Level-7 Save","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":0},"java":{"insertions":407,"deletions":107}}},{"hash":"4f8ba8f784472ca87bc23ce1a97cb505324afa25","isMergeCommit":false,"messageTitle":"Level-8 Dates and Times","messageBody":"","tags":["Level-8","A-MoreOOP"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":4},"java":{"insertions":99,"deletions":126}}},{"hash":"dca9aae0f5fb9a2d0b3c9d0a7a39b5e80e9b9481","isMergeCommit":false,"messageTitle":"A-Packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"java":{"insertions":19,"deletions":2}}},{"hash":"c23eb0a25c57f5959b8d3c23cced1b60bb40e683","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into add-gradle-support","messageBody":"Merge\n","fileTypesAndContributionMap":{}},{"hash":"50a9846f240a1ce875be47c68ca5e2de196d5be6","isMergeCommit":false,"messageTitle":"A-Gradle","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}}]},{"date":"2023-08-30","commitResults":[{"hash":"e0722b6d5eb59625f37b03bd031adf276a1ec3f2","isMergeCommit":false,"messageTitle":"A-JUnit","messageBody":"","tags":["A-JUnit","A-JAR"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":1},"java":{"insertions":168,"deletions":7}}},{"hash":"a2301cd99fae9d4aa2550136d61c601b6cddf2ec","isMergeCommit":false,"messageTitle":"A-JavaDoc","messageBody":"","tags":["CodingStandard","A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":282,"deletions":2}}},{"hash":"c2764c92deb87f2c8db35d6b1f4fd0275732c387","isMergeCommit":false,"messageTitle":"Level-9 Find","messageBody":"","tags":["Level-9","A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":0}}}]},{"date":"2023-09-11","commitResults":[{"hash":"5ad146b6c43653fac4b16a69e5804b95c94a7dfe","isMergeCommit":false,"messageTitle":"Level 10. GUI Add a GUI to the chatbot using JavaFX technology","messageBody":"In the current situation, the chatbot lacks a graphical user interface (GUI), making it less user-friendly and accessible.\n\nTo address this issue, this commit introduces a GUI to the chatbot. We have chosen to implement the GUI using JavaFX technology due to its robustness and cross-platform compatibility.\n\nThe GUI will enhance the user experience by providing an intuitive way to interact with the chatbot. Users will now have a visually appealing interface to input queries and receive responses, making the application more user-friendly.\n\nThis approach is chosen because JavaFX offers a wide range of features for building interactive and responsive interfaces. It allows us to create a seamless integration between the chatbot\u0027s functionality and the graphical interface, ensuring a cohesive user experience.\n\nAdditionally, JavaFX is well-documented and has a strong community, which will facilitate future maintenance and updates.\n\nIn summary, this commit adds a JavaFX-based GUI to the chatbot, improving its usability and overall user experience.\n\n- Tested on Windows, macOS, and Linux.\n- GUI design follows best practices for user interface usability.\n- Dependencies updated to include JavaFX libraries.\n","fileTypesAndContributionMap":{"gradle":{"insertions":14,"deletions":0},"java":{"insertions":226,"deletions":129}}},{"hash":"5cfefa0b7dde5b2a17822e1582e03df3941de45d","isMergeCommit":false,"messageTitle":"***A-Assertions*** Use Assertions","messageBody":"In the current situation, our codebase lacks a systematic way of documenting and validating important assumptions at critical points in the code.\n\nTo address this issue, this commit introduces the use of assertions as a means of documenting and validating these assumptions. Assertions serve as checkpoints within the code, helping ensure that specific conditions or expectations are met during program execution.\n\nThe inclusion of assertions enhances the code\u0027s clarity by explicitly stating the expectations and assumptions made by the developer. This not only aids in understanding the code but also helps catch potential issues early in the development process.\n\nHere\u0027s why we\u0027re using assertions:\n\n1. **Documentation**: Assertions provide in-code documentation for crucial assumptions, making it easier for developers to understand the code\u0027s requirements and constraints.\n\n2. **Debugging**: When an assertion fails, it provides valuable information about what went wrong and where, simplifying the debugging process.\n\n3. **Safety Nets**: Assertions act as safety nets, catching unexpected conditions or bugs during testing and development, reducing the chances of releasing faulty code.\n\n4. **Maintenance**: Over time, assertions facilitate code maintenance by helping developers quickly identify the impact of changes on existing assumptions.\n\nTo implement assertions, we\u0027re using the built-in assert feature of the programming language (not JUnit assertions). This allows us to assert conditions directly in the code without introducing external dependencies. Assertions should be used judiciously, primarily for scenarios where the failure of an assumption would lead to severe issues or incorrect behavior.\n\nHere\u0027s an example of how assertions are used:\n\n```java\npublic int divide(int dividend, int divisor) {\n assert divisor !\u003d 0 : \"Divisor should not be zero!\";\n // Rest of the division logic here\n}\n","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"java":{"insertions":44,"deletions":0}}},{"hash":"404e769070cd767a44cdfffe0243281f203e7c5c","isMergeCommit":false,"messageTitle":"A-CodeQuality","messageBody":"","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":14}}},{"hash":"fe8f77961658afa04b6ac7a03cadb077286538b2","isMergeCommit":false,"messageTitle":"***B-Reminders*** Reminders for tasks","messageBody":"In the current situation, our task management system lacks a mechanism for users to receive reminders about upcoming deadlines, which is essential for helping users stay organized and meet their commitments.\n\nTo address this issue, this commit introduces a new feature that provides reminders for tasks. Specifically, it adds an \"Upcoming Deadlines\" section to the top of the todo list. This section calculates and displays the number of days left until each task\u0027s deadline, serving as a convenient and visible reminder for users.\n\nHere\u0027s why we\u0027ve added this feature:\n\n1. **Improved Task Management**: Reminders help users keep track of their deadline dates, reducing the risk of missing important deadelines.\n\n2. **Enhanced User Experience**: The \"Upcoming Deadlines\" section adds value to our application by making it more user-friendly and efficient.\n\n3. **Increased Productivity**: Reminders promote better time management and productivity by ensuring that users are aware of their upcoming deadlines.\n\n4. **Efficiency**: Displaying the number of days left to each deadline provides users with a clear understanding of their task priorities.\n\nThe implementation of this feature includes the following:\n\n- The \"Upcoming Deadlines\" section is added to the top of the todo list interface.\n\n- A calculation is performed to determine the number of days remaining until each task\u0027s deadline.\n\nThis approach ensures that our reminder system is both informative and user-configurable, catering to different user needs and preferences.\n\nIn summary, this commit adds a valuable \"Upcoming Deadlines\" feature to our task management system, providing users with reminders for their tasks\u0027 deadlines and enhancing their overall experience.\n","tags":["BCD-Extension","B-Reminders"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":45,"deletions":7}}}]},{"date":"2023-09-20","commitResults":[{"hash":"a677af5be8ad92ea282f61847f24e5be5d3fd0e9","isMergeCommit":false,"messageTitle":"Minor UI fixes","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":3,"deletions":3}}},{"hash":"d77056b0e44717aad3f51cd6e5862834f55a1882","isMergeCommit":true,"messageTitle":"Merge pull request #2 from ryanongwx/branch-UIFixes","messageBody":"Minor UI fixes","fileTypesAndContributionMap":{}},{"hash":"866a2130b2d06aa96666c31b0e5259bcbf62726b","isMergeCommit":false,"messageTitle":"A-UserGuide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":77,"deletions":14}}},{"hash":"afbf623ffe624685e7a9bcd91f65ebd00b76bc48","isMergeCommit":true,"messageTitle":"Merge pull request #3 from ryanongwx/branch-A-UserGuide","messageBody":"A-UserGuide","tags":["A-ReleaseJAR"],"fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"ryanongwx":{"java":1131,"md":75,"fxml":0,"sh":0,"bat":0,"gradle":15,"txt":11}},"authorContributionVariance":{"ryanongwx":30642.07},"authorDisplayNameMap":{"ryanongwx":"CS2103T-T12-4 RYAN..XIAN"}} +{"authorDailyContributionsMap":{"ryanongwx":[{"date":"2023-08-22","commitResults":[{"hash":"702b16df0826014e34cc9c102182a11e4f8fc986","isMergeCommit":false,"messageTitle":"Level-0 Rename, Greet, Exit","messageBody":"","tags":["Level-1"],"fileTypesAndContributionMap":{"java":{"insertions":12,"deletions":6}}},{"hash":"5eaf67dbf2740611065ff7239230619f77104e4d","isMergeCommit":false,"messageTitle":"Level-1 Echo","messageBody":"","tags":["Level-2"],"fileTypesAndContributionMap":{"java":{"insertions":16,"deletions":0}}},{"hash":"9243cb186cc61470eca2d7622ffe5f2482fddf9b","isMergeCommit":false,"messageTitle":"Level-2 Add, List","messageBody":"","tags":["Level-3"],"fileTypesAndContributionMap":{"java":{"insertions":20,"deletions":5}}},{"hash":"011dca1454c3fd9c6cd5188a101e460258c8b528","isMergeCommit":false,"messageTitle":"Level-3 Mark as Done","messageBody":"","tags":["Level-4"],"fileTypesAndContributionMap":{"java":{"insertions":46,"deletions":3}}},{"hash":"61ca2597fcfa2cb3a7f8e2b9bc0ceee414453383","isMergeCommit":false,"messageTitle":"Level-4 ToDos, Events, Deadlines","messageBody":"","tags":["A-TextUiTesting"],"fileTypesAndContributionMap":{"java":{"insertions":72,"deletions":9}}},{"hash":"ec3249dac7cb311fb26d671cbd0c69e6a2cdd2d7","isMergeCommit":false,"messageTitle":"A-TextUiTesting","messageBody":"","tags":["Level-5"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":0},"java":{"insertions":1,"deletions":1},"sh":{"insertions":0,"deletions":0}}},{"hash":"ec8778cf487d8b6859ea05353ce4bffd59b0839b","isMergeCommit":false,"messageTitle":"Level-5 Handle Errors","messageBody":"","tags":["Level-6"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":1},"java":{"insertions":35,"deletions":15}}},{"hash":"31dca0587aefa74bc01921118314b0dedb16ca3e","isMergeCommit":false,"messageTitle":"Level-6 Delete","messageBody":"","fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":0},"java":{"insertions":17,"deletions":5}}}]},{"date":"2023-08-29","commitResults":[{"hash":"cc1083c0b637d527a5ba4f46fc4d1255b3c07f08","isMergeCommit":false,"messageTitle":"Level-7 Save","messageBody":"","tags":["Level-7"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":0},"java":{"insertions":407,"deletions":107}}},{"hash":"4f8ba8f784472ca87bc23ce1a97cb505324afa25","isMergeCommit":false,"messageTitle":"Level-8 Dates and Times","messageBody":"","tags":["Level-8","A-MoreOOP"],"fileTypesAndContributionMap":{"txt":{"insertions":4,"deletions":4},"java":{"insertions":99,"deletions":126}}},{"hash":"dca9aae0f5fb9a2d0b3c9d0a7a39b5e80e9b9481","isMergeCommit":false,"messageTitle":"A-Packages","messageBody":"","tags":["A-Packages"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":0},"java":{"insertions":19,"deletions":2}}},{"hash":"c23eb0a25c57f5959b8d3c23cced1b60bb40e683","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into add-gradle-support","messageBody":"Merge\n","fileTypesAndContributionMap":{}},{"hash":"50a9846f240a1ce875be47c68ca5e2de196d5be6","isMergeCommit":false,"messageTitle":"A-Gradle","messageBody":"","tags":["A-Gradle"],"fileTypesAndContributionMap":{"gradle":{"insertions":1,"deletions":1}}}]},{"date":"2023-08-30","commitResults":[{"hash":"e0722b6d5eb59625f37b03bd031adf276a1ec3f2","isMergeCommit":false,"messageTitle":"A-JUnit","messageBody":"","tags":["A-JUnit","A-JAR"],"fileTypesAndContributionMap":{"txt":{"insertions":1,"deletions":1},"java":{"insertions":168,"deletions":7}}},{"hash":"a2301cd99fae9d4aa2550136d61c601b6cddf2ec","isMergeCommit":false,"messageTitle":"A-JavaDoc","messageBody":"","tags":["CodingStandard","A-JavaDoc"],"fileTypesAndContributionMap":{"java":{"insertions":282,"deletions":2}}},{"hash":"c2764c92deb87f2c8db35d6b1f4fd0275732c387","isMergeCommit":false,"messageTitle":"Level-9 Find","messageBody":"","tags":["Level-9","A-CodingStandard"],"fileTypesAndContributionMap":{"java":{"insertions":38,"deletions":0}}}]},{"date":"2023-09-11","commitResults":[{"hash":"5ad146b6c43653fac4b16a69e5804b95c94a7dfe","isMergeCommit":false,"messageTitle":"Level 10. GUI Add a GUI to the chatbot using JavaFX technology","messageBody":"In the current situation, the chatbot lacks a graphical user interface (GUI), making it less user-friendly and accessible.\n\nTo address this issue, this commit introduces a GUI to the chatbot. We have chosen to implement the GUI using JavaFX technology due to its robustness and cross-platform compatibility.\n\nThe GUI will enhance the user experience by providing an intuitive way to interact with the chatbot. Users will now have a visually appealing interface to input queries and receive responses, making the application more user-friendly.\n\nThis approach is chosen because JavaFX offers a wide range of features for building interactive and responsive interfaces. It allows us to create a seamless integration between the chatbot\u0027s functionality and the graphical interface, ensuring a cohesive user experience.\n\nAdditionally, JavaFX is well-documented and has a strong community, which will facilitate future maintenance and updates.\n\nIn summary, this commit adds a JavaFX-based GUI to the chatbot, improving its usability and overall user experience.\n\n- Tested on Windows, macOS, and Linux.\n- GUI design follows best practices for user interface usability.\n- Dependencies updated to include JavaFX libraries.\n","fileTypesAndContributionMap":{"gradle":{"insertions":14,"deletions":0},"java":{"insertions":226,"deletions":129}}},{"hash":"5cfefa0b7dde5b2a17822e1582e03df3941de45d","isMergeCommit":false,"messageTitle":"***A-Assertions*** Use Assertions","messageBody":"In the current situation, our codebase lacks a systematic way of documenting and validating important assumptions at critical points in the code.\n\nTo address this issue, this commit introduces the use of assertions as a means of documenting and validating these assumptions. Assertions serve as checkpoints within the code, helping ensure that specific conditions or expectations are met during program execution.\n\nThe inclusion of assertions enhances the code\u0027s clarity by explicitly stating the expectations and assumptions made by the developer. This not only aids in understanding the code but also helps catch potential issues early in the development process.\n\nHere\u0027s why we\u0027re using assertions:\n\n1. **Documentation**: Assertions provide in-code documentation for crucial assumptions, making it easier for developers to understand the code\u0027s requirements and constraints.\n\n2. **Debugging**: When an assertion fails, it provides valuable information about what went wrong and where, simplifying the debugging process.\n\n3. **Safety Nets**: Assertions act as safety nets, catching unexpected conditions or bugs during testing and development, reducing the chances of releasing faulty code.\n\n4. **Maintenance**: Over time, assertions facilitate code maintenance by helping developers quickly identify the impact of changes on existing assumptions.\n\nTo implement assertions, we\u0027re using the built-in assert feature of the programming language (not JUnit assertions). This allows us to assert conditions directly in the code without introducing external dependencies. Assertions should be used judiciously, primarily for scenarios where the failure of an assumption would lead to severe issues or incorrect behavior.\n\nHere\u0027s an example of how assertions are used:\n\n```java\npublic int divide(int dividend, int divisor) {\n assert divisor !\u003d 0 : \"Divisor should not be zero!\";\n // Rest of the division logic here\n}\n","tags":["A-FullCommitMessage","A-Assertions"],"fileTypesAndContributionMap":{"java":{"insertions":44,"deletions":0}}},{"hash":"404e769070cd767a44cdfffe0243281f203e7c5c","isMergeCommit":false,"messageTitle":"A-CodeQuality","messageBody":"","tags":["A-CodeQuality"],"fileTypesAndContributionMap":{"java":{"insertions":14,"deletions":14}}},{"hash":"fe8f77961658afa04b6ac7a03cadb077286538b2","isMergeCommit":false,"messageTitle":"***B-Reminders*** Reminders for tasks","messageBody":"In the current situation, our task management system lacks a mechanism for users to receive reminders about upcoming deadlines, which is essential for helping users stay organized and meet their commitments.\n\nTo address this issue, this commit introduces a new feature that provides reminders for tasks. Specifically, it adds an \"Upcoming Deadlines\" section to the top of the todo list. This section calculates and displays the number of days left until each task\u0027s deadline, serving as a convenient and visible reminder for users.\n\nHere\u0027s why we\u0027ve added this feature:\n\n1. **Improved Task Management**: Reminders help users keep track of their deadline dates, reducing the risk of missing important deadelines.\n\n2. **Enhanced User Experience**: The \"Upcoming Deadlines\" section adds value to our application by making it more user-friendly and efficient.\n\n3. **Increased Productivity**: Reminders promote better time management and productivity by ensuring that users are aware of their upcoming deadlines.\n\n4. **Efficiency**: Displaying the number of days left to each deadline provides users with a clear understanding of their task priorities.\n\nThe implementation of this feature includes the following:\n\n- The \"Upcoming Deadlines\" section is added to the top of the todo list interface.\n\n- A calculation is performed to determine the number of days remaining until each task\u0027s deadline.\n\nThis approach ensures that our reminder system is both informative and user-configurable, catering to different user needs and preferences.\n\nIn summary, this commit adds a valuable \"Upcoming Deadlines\" feature to our task management system, providing users with reminders for their tasks\u0027 deadlines and enhancing their overall experience.\n","tags":["BCD-Extension","B-Reminders"],"fileTypesAndContributionMap":{"txt":{"insertions":2,"deletions":0},"java":{"insertions":45,"deletions":7}}}]},{"date":"2023-09-20","commitResults":[{"hash":"a677af5be8ad92ea282f61847f24e5be5d3fd0e9","isMergeCommit":false,"messageTitle":"Minor UI fixes","messageBody":"","tags":["A-UserGuide"],"fileTypesAndContributionMap":{"txt":{"insertions":0,"deletions":1},"java":{"insertions":3,"deletions":3}}},{"hash":"d77056b0e44717aad3f51cd6e5862834f55a1882","isMergeCommit":true,"messageTitle":"Merge pull request #2 from ryanongwx/branch-UIFixes","messageBody":"Minor UI fixes","fileTypesAndContributionMap":{}},{"hash":"866a2130b2d06aa96666c31b0e5259bcbf62726b","isMergeCommit":false,"messageTitle":"A-UserGuide","messageBody":"","fileTypesAndContributionMap":{"md":{"insertions":77,"deletions":14}}},{"hash":"afbf623ffe624685e7a9bcd91f65ebd00b76bc48","isMergeCommit":true,"messageTitle":"Merge pull request #3 from ryanongwx/branch-A-UserGuide","messageBody":"A-UserGuide","tags":["A-ReleaseJAR"],"fileTypesAndContributionMap":{}}]},{"date":"2023-09-27","commitResults":[{"hash":"b5b51d2b4787e62b59dd3de78bc9b9391c2a5582","isMergeCommit":false,"messageTitle":"final changes","messageBody":"","fileTypesAndContributionMap":{"gradle":{"insertions":4,"deletions":4},"txt":{"insertions":0,"deletions":0},"java":{"insertions":28,"deletions":3}}},{"hash":"ef06a68d4786a30cc71342c5ed51e01af0b71494","isMergeCommit":true,"messageTitle":"Merge branch \u0027branch-A-UserGuide\u0027","messageBody":"","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"ryanongwx":{"java":1156,"md":75,"fxml":0,"sh":0,"bat":0,"gradle":15,"txt":11}},"authorContributionVariance":{"ryanongwx":25906.842},"authorDisplayNameMap":{"ryanongwx":"CS2103T-T12-4 RYAN..XIAN"}} diff --git a/summary.json b/summary.json index c0938c73..5ce89247 100644 --- a/summary.json +++ b/summary.json @@ -1 +1 @@ -{"repoSenseVersion":"075d34d8f5","reportGeneratedTime":"Tue Sep 26 22:06:07 2023 UTC+08:00","reportGenerationTime":" 3 minute(s) 0.99 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2103 iP Code Dashboard","repos":[{"location":{"location":"https://github.com/remuslum/ip.git","repoName":"ip","organization":"remuslum","domainName":"github"},"branch":"master","displayName":"remuslum/ip[master]","outputFolderName":"remuslum_ip_master"},{"location":{"location":"https://github.com/elhy1999/ip.git","repoName":"ip","organization":"elhy1999","domainName":"github"},"branch":"master","displayName":"elhy1999/ip[master]","outputFolderName":"elhy1999_ip_master"},{"location":{"location":"https://github.com/XihuaZ/ip.git","repoName":"ip","organization":"XihuaZ","domainName":"github"},"branch":"master","displayName":"XihuaZ/ip[master]","outputFolderName":"XihuaZ_ip_master"},{"location":{"location":"https://github.com/bwangpj/ip.git","repoName":"ip","organization":"bwangpj","domainName":"github"},"branch":"master","displayName":"bwangpj/ip[master]","outputFolderName":"bwangpj_ip_master"},{"location":{"location":"https://github.com/shuenj/ip.git","repoName":"ip","organization":"shuenj","domainName":"github"},"branch":"master","displayName":"shuenj/ip[master]","outputFolderName":"shuenj_ip_master"},{"location":{"location":"https://github.com/SungMatt/ip.git","repoName":"ip","organization":"SungMatt","domainName":"github"},"branch":"master","displayName":"SungMatt/ip[master]","outputFolderName":"SungMatt_ip_master"},{"location":{"location":"https://github.com/junhonglow/ip.git","repoName":"ip","organization":"junhonglow","domainName":"github"},"branch":"master","displayName":"junhonglow/ip[master]","outputFolderName":"junhonglow_ip_master"},{"location":{"location":"https://github.com/xavierpok/ip.git","repoName":"ip","organization":"xavierpok","domainName":"github"},"branch":"master","displayName":"xavierpok/ip[master]","outputFolderName":"xavierpok_ip_master"},{"location":{"location":"https://github.com/marcellaantania/ip.git","repoName":"ip","organization":"marcellaantania","domainName":"github"},"branch":"master","displayName":"marcellaantania/ip[master]","outputFolderName":"marcellaantania_ip_master"},{"location":{"location":"https://github.com/starrylight99/ip.git","repoName":"ip","organization":"starrylight99","domainName":"github"},"branch":"master","displayName":"starrylight99/ip[master]","outputFolderName":"starrylight99_ip_master"},{"location":{"location":"https://github.com/leezhanpeng/ip.git","repoName":"ip","organization":"leezhanpeng","domainName":"github"},"branch":"master","displayName":"leezhanpeng/ip[master]","outputFolderName":"leezhanpeng_ip_master"},{"location":{"location":"https://github.com/sheryew/ip.git","repoName":"ip","organization":"sheryew","domainName":"github"},"branch":"master","displayName":"sheryew/ip[master]","outputFolderName":"sheryew_ip_master"},{"location":{"location":"https://github.com/lihongguang00/ip.git","repoName":"ip","organization":"lihongguang00","domainName":"github"},"branch":"master","displayName":"lihongguang00/ip[master]","outputFolderName":"lihongguang00_ip_master"},{"location":{"location":"https://github.com/nicrandomlee/ip.git","repoName":"ip","organization":"nicrandomlee","domainName":"github"},"branch":"master","displayName":"nicrandomlee/ip[master]","outputFolderName":"nicrandomlee_ip_master"},{"location":{"location":"https://github.com/LuahJunYang/ip.git","repoName":"ip","organization":"LuahJunYang","domainName":"github"},"branch":"master","displayName":"LuahJunYang/ip[master]","outputFolderName":"LuahJunYang_ip_master"},{"location":{"location":"https://github.com/s-peiran/ip.git","repoName":"ip","organization":"s-peiran","domainName":"github"},"branch":"master","displayName":"s-peiran/ip[master]","outputFolderName":"s-peiran_ip_master"},{"location":{"location":"https://github.com/aarontxz/ip.git","repoName":"ip","organization":"aarontxz","domainName":"github"},"branch":"master","displayName":"aarontxz/ip[master]","outputFolderName":"aarontxz_ip_master"},{"location":{"location":"https://github.com/chiayunrong/ip.git","repoName":"ip","organization":"chiayunrong","domainName":"github"},"branch":"master","displayName":"chiayunrong/ip[master]","outputFolderName":"chiayunrong_ip_master"},{"location":{"location":"https://github.com/nixonwidjaja/ip.git","repoName":"ip","organization":"nixonwidjaja","domainName":"github"},"branch":"master","displayName":"nixonwidjaja/ip[master]","outputFolderName":"nixonwidjaja_ip_master"},{"location":{"location":"https://github.com/imkwokyong/ip.git","repoName":"ip","organization":"imkwokyong","domainName":"github"},"branch":"master","displayName":"imkwokyong/ip[master]","outputFolderName":"imkwokyong_ip_master"},{"location":{"location":"https://github.com/mamayuan/ip.git","repoName":"ip","organization":"mamayuan","domainName":"github"},"branch":"master","displayName":"mamayuan/ip[master]","outputFolderName":"mamayuan_ip_master"},{"location":{"location":"https://github.com/geoffong11/ip.git","repoName":"ip","organization":"geoffong11","domainName":"github"},"branch":"master","displayName":"geoffong11/ip[master]","outputFolderName":"geoffong11_ip_master"},{"location":{"location":"https://github.com/vivienherq/ip.git","repoName":"ip","organization":"vivienherq","domainName":"github"},"branch":"master","displayName":"vivienherq/ip[master]","outputFolderName":"vivienherq_ip_master"},{"location":{"location":"https://github.com/johnnythesnake12/ip.git","repoName":"ip","organization":"johnnythesnake12","domainName":"github"},"branch":"master","displayName":"johnnythesnake12/ip[master]","outputFolderName":"johnnythesnake12_ip_master"},{"location":{"location":"https://github.com/Cloud7050/ip.git","repoName":"ip","organization":"Cloud7050","domainName":"github"},"branch":"master","displayName":"Cloud7050/ip[master]","outputFolderName":"Cloud7050_ip_master"},{"location":{"location":"https://github.com/jonyeokj/ip.git","repoName":"ip","organization":"jonyeokj","domainName":"github"},"branch":"master","displayName":"jonyeokj/ip[master]","outputFolderName":"jonyeokj_ip_master"},{"location":{"location":"https://github.com/lipwei1808/ip.git","repoName":"ip","organization":"lipwei1808","domainName":"github"},"branch":"master","displayName":"lipwei1808/ip[master]","outputFolderName":"lipwei1808_ip_master"},{"location":{"location":"https://github.com/zhanyang01/ip.git","repoName":"ip","organization":"zhanyang01","domainName":"github"},"branch":"master","displayName":"zhanyang01/ip[master]","outputFolderName":"zhanyang01_ip_master"},{"location":{"location":"https://github.com/EricXiong420/ip.git","repoName":"ip","organization":"EricXiong420","domainName":"github"},"branch":"master","displayName":"EricXiong420/ip[master]","outputFolderName":"EricXiong420_ip_master"},{"location":{"location":"https://github.com/sp4ce-cowboy/ip.git","repoName":"ip","organization":"sp4ce-cowboy","domainName":"github"},"branch":"master","displayName":"sp4ce-cowboy/ip[master]","outputFolderName":"sp4ce-cowboy_ip_master"},{"location":{"location":"https://github.com/ktzy0305/ip.git","repoName":"ip","organization":"ktzy0305","domainName":"github"},"branch":"master","displayName":"ktzy0305/ip[master]","outputFolderName":"ktzy0305_ip_master"},{"location":{"location":"https://github.com/dom-buri/ip.git","repoName":"ip","organization":"dom-buri","domainName":"github"},"branch":"master","displayName":"dom-buri/ip[master]","outputFolderName":"dom-buri_ip_master"},{"location":{"location":"https://github.com/rayshawntan/ip.git","repoName":"ip","organization":"rayshawntan","domainName":"github"},"branch":"master","displayName":"rayshawntan/ip[master]","outputFolderName":"rayshawntan_ip_master"},{"location":{"location":"https://github.com/Seonlo99/ip.git","repoName":"ip","organization":"Seonlo99","domainName":"github"},"branch":"master","displayName":"Seonlo99/ip[master]","outputFolderName":"Seonlo99_ip_master"},{"location":{"location":"https://github.com/woojiahao/ip.git","repoName":"ip","organization":"woojiahao","domainName":"github"},"branch":"master","displayName":"woojiahao/ip[master]","outputFolderName":"woojiahao_ip_master"},{"location":{"location":"https://github.com/Angelyxx/ip.git","repoName":"ip","organization":"Angelyxx","domainName":"github"},"branch":"master","displayName":"Angelyxx/ip[master]","outputFolderName":"Angelyxx_ip_master"},{"location":{"location":"https://github.com/jamz903/ip.git","repoName":"ip","organization":"jamz903","domainName":"github"},"branch":"master","displayName":"jamz903/ip[master]","outputFolderName":"jamz903_ip_master"},{"location":{"location":"https://github.com/Fallman2/ip.git","repoName":"ip","organization":"Fallman2","domainName":"github"},"branch":"master","displayName":"Fallman2/ip[master]","outputFolderName":"Fallman2_ip_master"},{"location":{"location":"https://github.com/jacobcuison/ip.git","repoName":"ip","organization":"jacobcuison","domainName":"github"},"branch":"master","displayName":"jacobcuison/ip[master]","outputFolderName":"jacobcuison_ip_master"},{"location":{"location":"https://github.com/kenvynKwek/ip.git","repoName":"ip","organization":"kenvynKwek","domainName":"github"},"branch":"master","displayName":"kenvynKwek/ip[master]","outputFolderName":"kenvynKwek_ip_master"},{"location":{"location":"https://github.com/kokrui/ip.git","repoName":"ip","organization":"kokrui","domainName":"github"},"branch":"master","displayName":"kokrui/ip[master]","outputFolderName":"kokrui_ip_master"},{"location":{"location":"https://github.com/ncmathan/ip.git","repoName":"ip","organization":"ncmathan","domainName":"github"},"branch":"master","displayName":"ncmathan/ip[master]","outputFolderName":"ncmathan_ip_master"},{"location":{"location":"https://github.com/xCOLOURx/ip.git","repoName":"ip","organization":"xCOLOURx","domainName":"github"},"branch":"master","displayName":"xCOLOURx/ip[master]","outputFolderName":"xCOLOURx_ip_master"},{"location":{"location":"https://github.com/zhyuhan/ip.git","repoName":"ip","organization":"zhyuhan","domainName":"github"},"branch":"master","displayName":"zhyuhan/ip[master]","outputFolderName":"zhyuhan_ip_master"},{"location":{"location":"https://github.com/chuababyy/ip.git","repoName":"ip","organization":"chuababyy","domainName":"github"},"branch":"master","displayName":"chuababyy/ip[master]","outputFolderName":"chuababyy_ip_master"},{"location":{"location":"https://github.com/rocketninja7/ip.git","repoName":"ip","organization":"rocketninja7","domainName":"github"},"branch":"master","displayName":"rocketninja7/ip[master]","outputFolderName":"rocketninja7_ip_master"},{"location":{"location":"https://github.com/marquestye/ip.git","repoName":"ip","organization":"marquestye","domainName":"github"},"branch":"master","displayName":"marquestye/ip[master]","outputFolderName":"marquestye_ip_master"},{"location":{"location":"https://github.com/ruiyangzh/ip.git","repoName":"ip","organization":"ruiyangzh","domainName":"github"},"branch":"master","displayName":"ruiyangzh/ip[master]","outputFolderName":"ruiyangzh_ip_master"},{"location":{"location":"https://github.com/derekjxtan/ip.git","repoName":"ip","organization":"derekjxtan","domainName":"github"},"branch":"master","displayName":"derekjxtan/ip[master]","outputFolderName":"derekjxtan_ip_master"},{"location":{"location":"https://github.com/mounilsankar/ip.git","repoName":"ip","organization":"mounilsankar","domainName":"github"},"branch":"master","displayName":"mounilsankar/ip[master]","outputFolderName":"mounilsankar_ip_master"},{"location":{"location":"https://github.com/wj331/ip.git","repoName":"ip","organization":"wj331","domainName":"github"},"branch":"master","displayName":"wj331/ip[master]","outputFolderName":"wj331_ip_master"},{"location":{"location":"https://github.com/JasonLCY-Temp/ip.git","repoName":"ip","organization":"JasonLCY-Temp","domainName":"github"},"branch":"master","displayName":"JasonLCY-Temp/ip[master]","outputFolderName":"JasonLCY-Temp_ip_master"},{"location":{"location":"https://github.com/lawruixi/ip.git","repoName":"ip","organization":"lawruixi","domainName":"github"},"branch":"master","displayName":"lawruixi/ip[master]","outputFolderName":"lawruixi_ip_master"},{"location":{"location":"https://github.com/wxwern/ip.git","repoName":"ip","organization":"wxwern","domainName":"github"},"branch":"master","displayName":"wxwern/ip[master]","outputFolderName":"wxwern_ip_master"},{"location":{"location":"https://github.com/zekone/ip.git","repoName":"ip","organization":"zekone","domainName":"github"},"branch":"master","displayName":"zekone/ip[master]","outputFolderName":"zekone_ip_master"},{"location":{"location":"https://github.com/wamps-jp/ip.git","repoName":"ip","organization":"wamps-jp","domainName":"github"},"branch":"master","displayName":"wamps-jp/ip[master]","outputFolderName":"wamps-jp_ip_master"},{"location":{"location":"https://github.com/saltedfishxx/ip.git","repoName":"ip","organization":"saltedfishxx","domainName":"github"},"branch":"master","displayName":"saltedfishxx/ip[master]","outputFolderName":"saltedfishxx_ip_master"},{"location":{"location":"https://github.com/winson8222/ip.git","repoName":"ip","organization":"winson8222","domainName":"github"},"branch":"master","displayName":"winson8222/ip[master]","outputFolderName":"winson8222_ip_master"},{"location":{"location":"https://github.com/brandon-nam/ip.git","repoName":"ip","organization":"brandon-nam","domainName":"github"},"branch":"master","displayName":"brandon-nam/ip[master]","outputFolderName":"brandon-nam_ip_master"},{"location":{"location":"https://github.com/p-xp/ip.git","repoName":"ip","organization":"p-xp","domainName":"github"},"branch":"master","displayName":"p-xp/ip[master]","outputFolderName":"p-xp_ip_master"},{"location":{"location":"https://github.com/WeeMingQing/ip.git","repoName":"ip","organization":"WeeMingQing","domainName":"github"},"branch":"master","displayName":"WeeMingQing/ip[master]","outputFolderName":"WeeMingQing_ip_master"},{"location":{"location":"https://github.com/ScarletBlanks/ip.git","repoName":"ip","organization":"ScarletBlanks","domainName":"github"},"branch":"master","displayName":"ScarletBlanks/ip[master]","outputFolderName":"ScarletBlanks_ip_master"},{"location":{"location":"https://github.com/seraphimstreets/ip.git","repoName":"ip","organization":"seraphimstreets","domainName":"github"},"branch":"master","displayName":"seraphimstreets/ip[master]","outputFolderName":"seraphimstreets_ip_master"},{"location":{"location":"https://github.com/devanshubisht/ip.git","repoName":"ip","organization":"devanshubisht","domainName":"github"},"branch":"master","displayName":"devanshubisht/ip[master]","outputFolderName":"devanshubisht_ip_master"},{"location":{"location":"https://github.com/Zjinnnn/ip.git","repoName":"ip","organization":"Zjinnnn","domainName":"github"},"branch":"master","displayName":"Zjinnnn/ip[master]","outputFolderName":"Zjinnnn_ip_master"},{"location":{"location":"https://github.com/brendanneojw/ip.git","repoName":"ip","organization":"brendanneojw","domainName":"github"},"branch":"master","displayName":"brendanneojw/ip[master]","outputFolderName":"brendanneojw_ip_master"},{"location":{"location":"https://github.com/aexolate/ip.git","repoName":"ip","organization":"aexolate","domainName":"github"},"branch":"master","displayName":"aexolate/ip[master]","outputFolderName":"aexolate_ip_master"},{"location":{"location":"https://github.com/techjay-c/ip.git","repoName":"ip","organization":"techjay-c","domainName":"github"},"branch":"master","displayName":"techjay-c/ip[master]","outputFolderName":"techjay-c_ip_master"},{"location":{"location":"https://github.com/SynapseProgramming/ip.git","repoName":"ip","organization":"SynapseProgramming","domainName":"github"},"branch":"master","displayName":"SynapseProgramming/ip[master]","outputFolderName":"SynapseProgramming_ip_master"},{"location":{"location":"https://github.com/TyrusLye/ip.git","repoName":"ip","organization":"TyrusLye","domainName":"github"},"branch":"master","displayName":"TyrusLye/ip[master]","outputFolderName":"TyrusLye_ip_master"},{"location":{"location":"https://github.com/RB9823/ip.git","repoName":"ip","organization":"RB9823","domainName":"github"},"branch":"master","displayName":"RB9823/ip[master]","outputFolderName":"RB9823_ip_master"},{"location":{"location":"https://github.com/jean-cq/ip.git","repoName":"ip","organization":"jean-cq","domainName":"github"},"branch":"master","displayName":"jean-cq/ip[master]","outputFolderName":"jean-cq_ip_master"},{"location":{"location":"https://github.com/Bearypop/ip.git","repoName":"ip","organization":"Bearypop","domainName":"github"},"branch":"master","displayName":"Bearypop/ip[master]","outputFolderName":"Bearypop_ip_master"},{"location":{"location":"https://github.com/andytoh1/ip.git","repoName":"ip","organization":"andytoh1","domainName":"github"},"branch":"master","displayName":"andytoh1/ip[master]","outputFolderName":"andytoh1_ip_master"},{"location":{"location":"https://github.com/siqirua/ip.git","repoName":"ip","organization":"siqirua","domainName":"github"},"branch":"master","displayName":"siqirua/ip[master]","outputFolderName":"siqirua_ip_master"},{"location":{"location":"https://github.com/amosting/ip.git","repoName":"ip","organization":"amosting","domainName":"github"},"branch":"master","displayName":"amosting/ip[master]","outputFolderName":"amosting_ip_master"},{"location":{"location":"https://github.com/JizhuoChen/ip.git","repoName":"ip","organization":"JizhuoChen","domainName":"github"},"branch":"master","displayName":"JizhuoChen/ip[master]","outputFolderName":"JizhuoChen_ip_master"},{"location":{"location":"https://github.com/Tang-Moyan/ip.git","repoName":"ip","organization":"Tang-Moyan","domainName":"github"},"branch":"master","displayName":"Tang-Moyan/ip[master]","outputFolderName":"Tang-Moyan_ip_master"},{"location":{"location":"https://github.com/aliciamichellew/ip.git","repoName":"ip","organization":"aliciamichellew","domainName":"github"},"branch":"master","displayName":"aliciamichellew/ip[master]","outputFolderName":"aliciamichellew_ip_master"},{"location":{"location":"https://github.com/KamiliArsyad/ip.git","repoName":"ip","organization":"KamiliArsyad","domainName":"github"},"branch":"master","displayName":"KamiliArsyad/ip[master]","outputFolderName":"KamiliArsyad_ip_master"},{"location":{"location":"https://github.com/dishenggg/ip.git","repoName":"ip","organization":"dishenggg","domainName":"github"},"branch":"master","displayName":"dishenggg/ip[master]","outputFolderName":"dishenggg_ip_master"},{"location":{"location":"https://github.com/Nixx162/ip.git","repoName":"ip","organization":"Nixx162","domainName":"github"},"branch":"master","displayName":"Nixx162/ip[master]","outputFolderName":"Nixx162_ip_master"},{"location":{"location":"https://github.com/Leb14/ip.git","repoName":"ip","organization":"Leb14","domainName":"github"},"branch":"master","displayName":"Leb14/ip[master]","outputFolderName":"Leb14_ip_master"},{"location":{"location":"https://github.com/Heran9/ip.git","repoName":"ip","organization":"Heran9","domainName":"github"},"branch":"master","displayName":"Heran9/ip[master]","outputFolderName":"Heran9_ip_master"},{"location":{"location":"https://github.com/FerdiHS/ip.git","repoName":"ip","organization":"FerdiHS","domainName":"github"},"branch":"master","displayName":"FerdiHS/ip[master]","outputFolderName":"FerdiHS_ip_master"},{"location":{"location":"https://github.com/StevenLiudw/ip.git","repoName":"ip","organization":"StevenLiudw","domainName":"github"},"branch":"master","displayName":"StevenLiudw/ip[master]","outputFolderName":"StevenLiudw_ip_master"},{"location":{"location":"https://github.com/InfiBeyond/ip.git","repoName":"ip","organization":"InfiBeyond","domainName":"github"},"branch":"master","displayName":"InfiBeyond/ip[master]","outputFolderName":"InfiBeyond_ip_master"},{"location":{"location":"https://github.com/s0ngyang/ip.git","repoName":"ip","organization":"s0ngyang","domainName":"github"},"branch":"master","displayName":"s0ngyang/ip[master]","outputFolderName":"s0ngyang_ip_master"},{"location":{"location":"https://github.com/ivyy-poison/ip.git","repoName":"ip","organization":"ivyy-poison","domainName":"github"},"branch":"master","displayName":"ivyy-poison/ip[master]","outputFolderName":"ivyy-poison_ip_master"},{"location":{"location":"https://github.com/yytan25/ip.git","repoName":"ip","organization":"yytan25","domainName":"github"},"branch":"master","displayName":"yytan25/ip[master]","outputFolderName":"yytan25_ip_master"},{"location":{"location":"https://github.com/tjch-o/ip.git","repoName":"ip","organization":"tjch-o","domainName":"github"},"branch":"master","displayName":"tjch-o/ip[master]","outputFolderName":"tjch-o_ip_master"},{"location":{"location":"https://github.com/jedkohjk/ip.git","repoName":"ip","organization":"jedkohjk","domainName":"github"},"branch":"master","displayName":"jedkohjk/ip[master]","outputFolderName":"jedkohjk_ip_master"},{"location":{"location":"https://github.com/raynertjx/ip.git","repoName":"ip","organization":"raynertjx","domainName":"github"},"branch":"master","displayName":"raynertjx/ip[master]","outputFolderName":"raynertjx_ip_master"},{"location":{"location":"https://github.com/cmHuang777/ip.git","repoName":"ip","organization":"cmHuang777","domainName":"github"},"branch":"master","displayName":"cmHuang777/ip[master]","outputFolderName":"cmHuang777_ip_master"},{"location":{"location":"https://github.com/wui-hong/ip.git","repoName":"ip","organization":"wui-hong","domainName":"github"},"branch":"master","displayName":"wui-hong/ip[master]","outputFolderName":"wui-hong_ip_master"},{"location":{"location":"https://github.com/PohSayKeong/ip.git","repoName":"ip","organization":"PohSayKeong","domainName":"github"},"branch":"master","displayName":"PohSayKeong/ip[master]","outputFolderName":"PohSayKeong_ip_master"},{"location":{"location":"https://github.com/lsyurea/ip.git","repoName":"ip","organization":"lsyurea","domainName":"github"},"branch":"master","displayName":"lsyurea/ip[master]","outputFolderName":"lsyurea_ip_master"},{"location":{"location":"https://github.com/ong-wei-hong/ip.git","repoName":"ip","organization":"ong-wei-hong","domainName":"github"},"branch":"master","displayName":"ong-wei-hong/ip[master]","outputFolderName":"ong-wei-hong_ip_master"},{"location":{"location":"https://github.com/asdfghjkxd/ip.git","repoName":"ip","organization":"asdfghjkxd","domainName":"github"},"branch":"master","displayName":"asdfghjkxd/ip[master]","outputFolderName":"asdfghjkxd_ip_master"},{"location":{"location":"https://github.com/GSgiansen/ip.git","repoName":"ip","organization":"GSgiansen","domainName":"github"},"branch":"master","displayName":"GSgiansen/ip[master]","outputFolderName":"GSgiansen_ip_master"},{"location":{"location":"https://github.com/syamfarh/ip.git","repoName":"ip","organization":"syamfarh","domainName":"github"},"branch":"master","displayName":"syamfarh/ip[master]","outputFolderName":"syamfarh_ip_master"},{"location":{"location":"https://github.com/PetrichorPrecipice/ip.git","repoName":"ip","organization":"PetrichorPrecipice","domainName":"github"},"branch":"master","displayName":"PetrichorPrecipice/ip[master]","outputFolderName":"PetrichorPrecipice_ip_master"},{"location":{"location":"https://github.com/ngeeyonglim/ip.git","repoName":"ip","organization":"ngeeyonglim","domainName":"github"},"branch":"master","displayName":"ngeeyonglim/ip[master]","outputFolderName":"ngeeyonglim_ip_master"},{"location":{"location":"https://github.com/ivanleekk/ip.git","repoName":"ip","organization":"ivanleekk","domainName":"github"},"branch":"master","displayName":"ivanleekk/ip[master]","outputFolderName":"ivanleekk_ip_master"},{"location":{"location":"https://github.com/ryanozx/ip.git","repoName":"ip","organization":"ryanozx","domainName":"github"},"branch":"master","displayName":"ryanozx/ip[master]","outputFolderName":"ryanozx_ip_master"},{"location":{"location":"https://github.com/Jweewee/ip.git","repoName":"ip","organization":"Jweewee","domainName":"github"},"branch":"master","displayName":"Jweewee/ip[master]","outputFolderName":"Jweewee_ip_master"},{"location":{"location":"https://github.com/supermii2/ip.git","repoName":"ip","organization":"supermii2","domainName":"github"},"branch":"master","displayName":"supermii2/ip[master]","outputFolderName":"supermii2_ip_master"},{"location":{"location":"https://github.com/bkjwjason/ip.git","repoName":"ip","organization":"bkjwjason","domainName":"github"},"branch":"master","displayName":"bkjwjason/ip[master]","outputFolderName":"bkjwjason_ip_master"},{"location":{"location":"https://github.com/Sasmik23/ip.git","repoName":"ip","organization":"Sasmik23","domainName":"github"},"branch":"master","displayName":"Sasmik23/ip[master]","outputFolderName":"Sasmik23_ip_master"},{"location":{"location":"https://github.com/nathanielcalimag/ip.git","repoName":"ip","organization":"nathanielcalimag","domainName":"github"},"branch":"master","displayName":"nathanielcalimag/ip[master]","outputFolderName":"nathanielcalimag_ip_master"},{"location":{"location":"https://github.com/AlagappanRa/ip.git","repoName":"ip","organization":"AlagappanRa","domainName":"github"},"branch":"master","displayName":"AlagappanRa/ip[master]","outputFolderName":"AlagappanRa_ip_master"},{"location":{"location":"https://github.com/McNaBry/ip.git","repoName":"ip","organization":"McNaBry","domainName":"github"},"branch":"master","displayName":"McNaBry/ip[master]","outputFolderName":"McNaBry_ip_master"},{"location":{"location":"https://github.com/phiphi-tan/ip.git","repoName":"ip","organization":"phiphi-tan","domainName":"github"},"branch":"master","displayName":"phiphi-tan/ip[master]","outputFolderName":"phiphi-tan_ip_master"},{"location":{"location":"https://github.com/LicongHuang/ip.git","repoName":"ip","organization":"LicongHuang","domainName":"github"},"branch":"master","displayName":"LicongHuang/ip[master]","outputFolderName":"LicongHuang_ip_master"},{"location":{"location":"https://github.com/tanshiyu1999/ip.git","repoName":"ip","organization":"tanshiyu1999","domainName":"github"},"branch":"master","displayName":"tanshiyu1999/ip[master]","outputFolderName":"tanshiyu1999_ip_master"},{"location":{"location":"https://github.com/raydenlim/ip.git","repoName":"ip","organization":"raydenlim","domainName":"github"},"branch":"master","displayName":"raydenlim/ip[master]","outputFolderName":"raydenlim_ip_master"},{"location":{"location":"https://github.com/jianyangg/ip.git","repoName":"ip","organization":"jianyangg","domainName":"github"},"branch":"master","displayName":"jianyangg/ip[master]","outputFolderName":"jianyangg_ip_master"},{"location":{"location":"https://github.com/rionshocker/ip.git","repoName":"ip","organization":"rionshocker","domainName":"github"},"branch":"master","displayName":"rionshocker/ip[master]","outputFolderName":"rionshocker_ip_master"},{"location":{"location":"https://github.com/conradsoon/ip.git","repoName":"ip","organization":"conradsoon","domainName":"github"},"branch":"master","displayName":"conradsoon/ip[master]","outputFolderName":"conradsoon_ip_master"},{"location":{"location":"https://github.com/Jonyxzx/ip.git","repoName":"ip","organization":"Jonyxzx","domainName":"github"},"branch":"master","displayName":"Jonyxzx/ip[master]","outputFolderName":"Jonyxzx_ip_master"},{"location":{"location":"https://github.com/euchangxian/ip.git","repoName":"ip","organization":"euchangxian","domainName":"github"},"branch":"master","displayName":"euchangxian/ip[master]","outputFolderName":"euchangxian_ip_master"},{"location":{"location":"https://github.com/teoks0199/ip.git","repoName":"ip","organization":"teoks0199","domainName":"github"},"branch":"master","displayName":"teoks0199/ip[master]","outputFolderName":"teoks0199_ip_master"},{"location":{"location":"https://github.com/HollaG/ip.git","repoName":"ip","organization":"HollaG","domainName":"github"},"branch":"master","displayName":"HollaG/ip[master]","outputFolderName":"HollaG_ip_master"},{"location":{"location":"https://github.com/leezhengjing/ip.git","repoName":"ip","organization":"leezhengjing","domainName":"github"},"branch":"master","displayName":"leezhengjing/ip[master]","outputFolderName":"leezhengjing_ip_master"},{"location":{"location":"https://github.com/timleow/ip.git","repoName":"ip","organization":"timleow","domainName":"github"},"branch":"master","displayName":"timleow/ip[master]","outputFolderName":"timleow_ip_master"},{"location":{"location":"https://github.com/jacksonyuan256/ip.git","repoName":"ip","organization":"jacksonyuan256","domainName":"github"},"branch":"master","displayName":"jacksonyuan256/ip[master]","outputFolderName":"jacksonyuan256_ip_master"},{"location":{"location":"https://github.com/victorlaiyeeteng/ip.git","repoName":"ip","organization":"victorlaiyeeteng","domainName":"github"},"branch":"master","displayName":"victorlaiyeeteng/ip[master]","outputFolderName":"victorlaiyeeteng_ip_master"},{"location":{"location":"https://github.com/prawnzyy/ip.git","repoName":"ip","organization":"prawnzyy","domainName":"github"},"branch":"master","displayName":"prawnzyy/ip[master]","outputFolderName":"prawnzyy_ip_master"},{"location":{"location":"https://github.com/ryanongwx/ip.git","repoName":"ip","organization":"ryanongwx","domainName":"github"},"branch":"master","displayName":"ryanongwx/ip[master]","outputFolderName":"ryanongwx_ip_master"},{"location":{"location":"https://github.com/tohpinren/ip.git","repoName":"ip","organization":"tohpinren","domainName":"github"},"branch":"master","displayName":"tohpinren/ip[master]","outputFolderName":"tohpinren_ip_master"},{"location":{"location":"https://github.com/DeltonCheng/ip.git","repoName":"ip","organization":"DeltonCheng","domainName":"github"},"branch":"master","displayName":"DeltonCheng/ip[master]","outputFolderName":"DeltonCheng_ip_master"},{"location":{"location":"https://github.com/leontan2/ip.git","repoName":"ip","organization":"leontan2","domainName":"github"},"branch":"master","displayName":"leontan2/ip[master]","outputFolderName":"leontan2_ip_master"},{"location":{"location":"https://github.com/alvinlim277/ip.git","repoName":"ip","organization":"alvinlim277","domainName":"github"},"branch":"master","displayName":"alvinlim277/ip[master]","outputFolderName":"alvinlim277_ip_master"},{"location":{"location":"https://github.com/lshaoqin/ip.git","repoName":"ip","organization":"lshaoqin","domainName":"github"},"branch":"master","displayName":"lshaoqin/ip[master]","outputFolderName":"lshaoqin_ip_master"},{"location":{"location":"https://github.com/ChongWeiJie29/ip.git","repoName":"ip","organization":"ChongWeiJie29","domainName":"github"},"branch":"master","displayName":"ChongWeiJie29/ip[master]","outputFolderName":"ChongWeiJie29_ip_master"},{"location":{"location":"https://github.com/zhonghan721/ip.git","repoName":"ip","organization":"zhonghan721","domainName":"github"},"branch":"master","displayName":"zhonghan721/ip[master]","outputFolderName":"zhonghan721_ip_master"},{"location":{"location":"https://github.com/teozhengyang/ip.git","repoName":"ip","organization":"teozhengyang","domainName":"github"},"branch":"master","displayName":"teozhengyang/ip[master]","outputFolderName":"teozhengyang_ip_master"},{"location":{"location":"https://github.com/garylow2001/ip.git","repoName":"ip","organization":"garylow2001","domainName":"github"},"branch":"master","displayName":"garylow2001/ip[master]","outputFolderName":"garylow2001_ip_master"},{"location":{"location":"https://github.com/Cleon2/ip.git","repoName":"ip","organization":"Cleon2","domainName":"github"},"branch":"master","displayName":"Cleon2/ip[master]","outputFolderName":"Cleon2_ip_master"},{"location":{"location":"https://github.com/limzhenwy/ip.git","repoName":"ip","organization":"limzhenwy","domainName":"github"},"branch":"master","displayName":"limzhenwy/ip[master]","outputFolderName":"limzhenwy_ip_master"},{"location":{"location":"https://github.com/ItsTYtan/ip.git","repoName":"ip","organization":"ItsTYtan","domainName":"github"},"branch":"master","displayName":"ItsTYtan/ip[master]","outputFolderName":"ItsTYtan_ip_master"},{"location":{"location":"https://github.com/owenyeo/ip.git","repoName":"ip","organization":"owenyeo","domainName":"github"},"branch":"master","displayName":"owenyeo/ip[master]","outputFolderName":"owenyeo_ip_master"},{"location":{"location":"https://github.com/jonasongg/ip.git","repoName":"ip","organization":"jonasongg","domainName":"github"},"branch":"master","displayName":"jonasongg/ip[master]","outputFolderName":"jonasongg_ip_master"},{"location":{"location":"https://github.com/Ruizhi2001/ip.git","repoName":"ip","organization":"Ruizhi2001","domainName":"github"},"branch":"master","displayName":"Ruizhi2001/ip[master]","outputFolderName":"Ruizhi2001_ip_master"},{"location":{"location":"https://github.com/Dioclei/ip.git","repoName":"ip","organization":"Dioclei","domainName":"github"},"branch":"master","displayName":"Dioclei/ip[master]","outputFolderName":"Dioclei_ip_master"},{"location":{"location":"https://github.com/bobscodedump/ip.git","repoName":"ip","organization":"bobscodedump","domainName":"github"},"branch":"master","displayName":"bobscodedump/ip[master]","outputFolderName":"bobscodedump_ip_master"},{"location":{"location":"https://github.com/andrefoo/ip.git","repoName":"ip","organization":"andrefoo","domainName":"github"},"branch":"master","displayName":"andrefoo/ip[master]","outputFolderName":"andrefoo_ip_master"},{"location":{"location":"https://github.com/Bombbird2001/ip.git","repoName":"ip","organization":"Bombbird2001","domainName":"github"},"branch":"master","displayName":"Bombbird2001/ip[master]","outputFolderName":"Bombbird2001_ip_master"},{"location":{"location":"https://github.com/chewjh1234/ip.git","repoName":"ip","organization":"chewjh1234","domainName":"github"},"branch":"master","displayName":"chewjh1234/ip[master]","outputFolderName":"chewjh1234_ip_master"},{"location":{"location":"https://github.com/dloh2236/ip.git","repoName":"ip","organization":"dloh2236","domainName":"github"},"branch":"master","displayName":"dloh2236/ip[master]","outputFolderName":"dloh2236_ip_master"},{"location":{"location":"https://github.com/chew01/ip.git","repoName":"ip","organization":"chew01","domainName":"github"},"branch":"master","displayName":"chew01/ip[master]","outputFolderName":"chew01_ip_master"},{"location":{"location":"https://github.com/trgao/ip.git","repoName":"ip","organization":"trgao","domainName":"github"},"branch":"master","displayName":"trgao/ip[master]","outputFolderName":"trgao_ip_master"},{"location":{"location":"https://github.com/richiehx/ip.git","repoName":"ip","organization":"richiehx","domainName":"github"},"branch":"master","displayName":"richiehx/ip[master]","outputFolderName":"richiehx_ip_master"},{"location":{"location":"https://github.com/LoMaply/ip.git","repoName":"ip","organization":"LoMaply","domainName":"github"},"branch":"master","displayName":"LoMaply/ip[master]","outputFolderName":"LoMaply_ip_master"},{"location":{"location":"https://github.com/Originalidk/ip.git","repoName":"ip","organization":"Originalidk","domainName":"github"},"branch":"master","displayName":"Originalidk/ip[master]","outputFolderName":"Originalidk_ip_master"},{"location":{"location":"https://github.com/kiatkat/ip.git","repoName":"ip","organization":"kiatkat","domainName":"github"},"branch":"master","displayName":"kiatkat/ip[master]","outputFolderName":"kiatkat_ip_master"},{"location":{"location":"https://github.com/juliusgambe/ip.git","repoName":"ip","organization":"juliusgambe","domainName":"github"},"branch":"master","displayName":"juliusgambe/ip[master]","outputFolderName":"juliusgambe_ip_master"},{"location":{"location":"https://github.com/jiakai-17/ip.git","repoName":"ip","organization":"jiakai-17","domainName":"github"},"branch":"master","displayName":"jiakai-17/ip[master]","outputFolderName":"jiakai-17_ip_master"},{"location":{"location":"https://github.com/nikele2001/ip.git","repoName":"ip","organization":"nikele2001","domainName":"github"},"branch":"master","displayName":"nikele2001/ip[master]","outputFolderName":"nikele2001_ip_master"},{"location":{"location":"https://github.com/jylow/ip.git","repoName":"ip","organization":"jylow","domainName":"github"},"branch":"master","displayName":"jylow/ip[master]","outputFolderName":"jylow_ip_master"},{"location":{"location":"https://github.com/jx124/ip.git","repoName":"ip","organization":"jx124","domainName":"github"},"branch":"master","displayName":"jx124/ip[master]","outputFolderName":"jx124_ip_master"},{"location":{"location":"https://github.com/Kb-Tay/ip.git","repoName":"ip","organization":"Kb-Tay","domainName":"github"},"branch":"master","displayName":"Kb-Tay/ip[master]","outputFolderName":"Kb-Tay_ip_master"},{"location":{"location":"https://github.com/jinyuan0425/ip.git","repoName":"ip","organization":"jinyuan0425","domainName":"github"},"branch":"master","displayName":"jinyuan0425/ip[master]","outputFolderName":"jinyuan0425_ip_master"},{"location":{"location":"https://github.com/darrentfy/ip.git","repoName":"ip","organization":"darrentfy","domainName":"github"},"branch":"master","displayName":"darrentfy/ip[master]","outputFolderName":"darrentfy_ip_master"},{"location":{"location":"https://github.com/HEEaZ/ip.git","repoName":"ip","organization":"HEEaZ","domainName":"github"},"branch":"master","displayName":"HEEaZ/ip[master]","outputFolderName":"HEEaZ_ip_master"},{"location":{"location":"https://github.com/ji-just-ji/ip.git","repoName":"ip","organization":"ji-just-ji","domainName":"github"},"branch":"master","displayName":"ji-just-ji/ip[master]","outputFolderName":"ji-just-ji_ip_master"},{"location":{"location":"https://github.com/simbayippy/ip.git","repoName":"ip","organization":"simbayippy","domainName":"github"},"branch":"master","displayName":"simbayippy/ip[master]","outputFolderName":"simbayippy_ip_master"},{"location":{"location":"https://github.com/teozern1/ip.git","repoName":"ip","organization":"teozern1","domainName":"github"},"branch":"master","displayName":"teozern1/ip[master]","outputFolderName":"teozern1_ip_master"},{"location":{"location":"https://github.com/brein62/ip.git","repoName":"ip","organization":"brein62","domainName":"github"},"branch":"master","displayName":"brein62/ip[master]","outputFolderName":"brein62_ip_master"},{"location":{"location":"https://github.com/awhb/ip.git","repoName":"ip","organization":"awhb","domainName":"github"},"branch":"master","displayName":"awhb/ip[master]","outputFolderName":"awhb_ip_master"},{"location":{"location":"https://github.com/Mahidharah/ip.git","repoName":"ip","organization":"Mahidharah","domainName":"github"},"branch":"master","displayName":"Mahidharah/ip[master]","outputFolderName":"Mahidharah_ip_master"},{"location":{"location":"https://github.com/timetraveller-123/ip.git","repoName":"ip","organization":"timetraveller-123","domainName":"github"},"branch":"master","displayName":"timetraveller-123/ip[master]","outputFolderName":"timetraveller-123_ip_master"},{"location":{"location":"https://github.com/ElginTZM/ip.git","repoName":"ip","organization":"ElginTZM","domainName":"github"},"branch":"master","displayName":"ElginTZM/ip[master]","outputFolderName":"ElginTZM_ip_master"},{"location":{"location":"https://github.com/ryamgoh/ip.git","repoName":"ip","organization":"ryamgoh","domainName":"github"},"branch":"master","displayName":"ryamgoh/ip[master]","outputFolderName":"ryamgoh_ip_master"},{"location":{"location":"https://github.com/Blizzeracz/ip.git","repoName":"ip","organization":"Blizzeracz","domainName":"github"},"branch":"master","displayName":"Blizzeracz/ip[master]","outputFolderName":"Blizzeracz_ip_master"},{"location":{"location":"https://github.com/kiwibang/ip.git","repoName":"ip","organization":"kiwibang","domainName":"github"},"branch":"master","displayName":"kiwibang/ip[master]","outputFolderName":"kiwibang_ip_master"},{"location":{"location":"https://github.com/redtailedfox/ip.git","repoName":"ip","organization":"redtailedfox","domainName":"github"},"branch":"master","displayName":"redtailedfox/ip[master]","outputFolderName":"redtailedfox_ip_master"},{"location":{"location":"https://github.com/lamchenghou/ip.git","repoName":"ip","organization":"lamchenghou","domainName":"github"},"branch":"master","displayName":"lamchenghou/ip[master]","outputFolderName":"lamchenghou_ip_master"},{"location":{"location":"https://github.com/gongg21/ip.git","repoName":"ip","organization":"gongg21","domainName":"github"},"branch":"master","displayName":"gongg21/ip[master]","outputFolderName":"gongg21_ip_master"},{"location":{"location":"https://github.com/CJ-Lee01/ip.git","repoName":"ip","organization":"CJ-Lee01","domainName":"github"},"branch":"master","displayName":"CJ-Lee01/ip[master]","outputFolderName":"CJ-Lee01_ip_master"},{"location":{"location":"https://github.com/Sheeepen/ip.git","repoName":"ip","organization":"Sheeepen","domainName":"github"},"branch":"master","displayName":"Sheeepen/ip[master]","outputFolderName":"Sheeepen_ip_master"},{"location":{"location":"https://github.com/AaronJT1/ip.git","repoName":"ip","organization":"AaronJT1","domainName":"github"},"branch":"master","displayName":"AaronJT1/ip[master]","outputFolderName":"AaronJT1_ip_master"},{"location":{"location":"https://github.com/Respirayson/ip.git","repoName":"ip","organization":"Respirayson","domainName":"github"},"branch":"master","displayName":"Respirayson/ip[master]","outputFolderName":"Respirayson_ip_master"},{"location":{"location":"https://github.com/dickongwd/ip.git","repoName":"ip","organization":"dickongwd","domainName":"github"},"branch":"master","displayName":"dickongwd/ip[master]","outputFolderName":"dickongwd_ip_master"},{"location":{"location":"https://github.com/nicholascher/ip.git","repoName":"ip","organization":"nicholascher","domainName":"github"},"branch":"master","displayName":"nicholascher/ip[master]","outputFolderName":"nicholascher_ip_master"},{"location":{"location":"https://github.com/et-irl/ip.git","repoName":"ip","organization":"et-irl","domainName":"github"},"branch":"master","displayName":"et-irl/ip[master]","outputFolderName":"et-irl_ip_master"},{"location":{"location":"https://github.com/aslam341/ip.git","repoName":"ip","organization":"aslam341","domainName":"github"},"branch":"master","displayName":"aslam341/ip[master]","outputFolderName":"aslam341_ip_master"},{"location":{"location":"https://github.com/seantehds/ip.git","repoName":"ip","organization":"seantehds","domainName":"github"},"branch":"master","displayName":"seantehds/ip[master]","outputFolderName":"seantehds_ip_master"},{"location":{"location":"https://github.com/jianrong7/ip.git","repoName":"ip","organization":"jianrong7","domainName":"github"},"branch":"master","displayName":"jianrong7/ip[master]","outputFolderName":"jianrong7_ip_master"},{"location":{"location":"https://github.com/TeeRenJing/ip.git","repoName":"ip","organization":"TeeRenJing","domainName":"github"},"branch":"master","displayName":"TeeRenJing/ip[master]","outputFolderName":"TeeRenJing_ip_master"},{"location":{"location":"https://github.com/RoeReRe/ip.git","repoName":"ip","organization":"RoeReRe","domainName":"github"},"branch":"master","displayName":"RoeReRe/ip[master]","outputFolderName":"RoeReRe_ip_master"},{"location":{"location":"https://github.com/zsh-eng/ip.git","repoName":"ip","organization":"zsh-eng","domainName":"github"},"branch":"master","displayName":"zsh-eng/ip[master]","outputFolderName":"zsh-eng_ip_master"},{"location":{"location":"https://github.com/seanpzk/ip.git","repoName":"ip","organization":"seanpzk","domainName":"github"},"branch":"master","displayName":"seanpzk/ip[master]","outputFolderName":"seanpzk_ip_master"},{"location":{"location":"https://github.com/quzhetao01/ip.git","repoName":"ip","organization":"quzhetao01","domainName":"github"},"branch":"master","displayName":"quzhetao01/ip[master]","outputFolderName":"quzhetao01_ip_master"},{"location":{"location":"https://github.com/joel-foo/ip.git","repoName":"ip","organization":"joel-foo","domainName":"github"},"branch":"master","displayName":"joel-foo/ip[master]","outputFolderName":"joel-foo_ip_master"},{"location":{"location":"https://github.com/markgcera/ip.git","repoName":"ip","organization":"markgcera","domainName":"github"},"branch":"master","displayName":"markgcera/ip[master]","outputFolderName":"markgcera_ip_master"},{"location":{"location":"https://github.com/dylkaw/ip.git","repoName":"ip","organization":"dylkaw","domainName":"github"},"branch":"master","displayName":"dylkaw/ip[master]","outputFolderName":"dylkaw_ip_master"},{"location":{"location":"https://github.com/SelwynAng/ip.git","repoName":"ip","organization":"SelwynAng","domainName":"github"},"branch":"master","displayName":"SelwynAng/ip[master]","outputFolderName":"SelwynAng_ip_master"},{"location":{"location":"https://github.com/jinyang628/ip.git","repoName":"ip","organization":"jinyang628","domainName":"github"},"branch":"master","displayName":"jinyang628/ip[master]","outputFolderName":"jinyang628_ip_master"},{"location":{"location":"https://github.com/matochichap/ip.git","repoName":"ip","organization":"matochichap","domainName":"github"},"branch":"master","displayName":"matochichap/ip[master]","outputFolderName":"matochichap_ip_master"},{"location":{"location":"https://github.com/sk2001git/ip.git","repoName":"ip","organization":"sk2001git","domainName":"github"},"branch":"master","displayName":"sk2001git/ip[master]","outputFolderName":"sk2001git_ip_master"},{"location":{"location":"https://github.com/jason-raiin/ip.git","repoName":"ip","organization":"jason-raiin","domainName":"github"},"branch":"master","displayName":"jason-raiin/ip[master]","outputFolderName":"jason-raiin_ip_master"},{"location":{"location":"https://github.com/Sebtey/ip.git","repoName":"ip","organization":"Sebtey","domainName":"github"},"branch":"master","displayName":"Sebtey/ip[master]","outputFolderName":"Sebtey_ip_master"},{"location":{"location":"https://github.com/Jweng88/ip.git","repoName":"ip","organization":"Jweng88","domainName":"github"},"branch":"master","displayName":"Jweng88/ip[master]","outputFolderName":"Jweng88_ip_master"},{"location":{"location":"https://github.com/billieboy7/ip.git","repoName":"ip","organization":"billieboy7","domainName":"github"},"branch":"master","displayName":"billieboy7/ip[master]","outputFolderName":"billieboy7_ip_master"},{"location":{"location":"https://github.com/ldinghan/ip.git","repoName":"ip","organization":"ldinghan","domainName":"github"},"branch":"master","displayName":"ldinghan/ip[master]","outputFolderName":"ldinghan_ip_master"},{"location":{"location":"https://github.com/anthonytamzil/ip.git","repoName":"ip","organization":"anthonytamzil","domainName":"github"},"branch":"master","displayName":"anthonytamzil/ip[master]","outputFolderName":"anthonytamzil_ip_master"},{"location":{"location":"https://github.com/ryantzr1/ip.git","repoName":"ip","organization":"ryantzr1","domainName":"github"},"branch":"master","displayName":"ryantzr1/ip[master]","outputFolderName":"ryantzr1_ip_master"},{"location":{"location":"https://github.com/shuyangk/ip.git","repoName":"ip","organization":"shuyangk","domainName":"github"},"branch":"master","displayName":"shuyangk/ip[master]","outputFolderName":"shuyangk_ip_master"},{"location":{"location":"https://github.com/seewhyjay/ip.git","repoName":"ip","organization":"seewhyjay","domainName":"github"},"branch":"master","displayName":"seewhyjay/ip[master]","outputFolderName":"seewhyjay_ip_master"},{"location":{"location":"https://github.com/waseemingly/ip.git","repoName":"ip","organization":"waseemingly","domainName":"github"},"branch":"master","displayName":"waseemingly/ip[master]","outputFolderName":"waseemingly_ip_master"},{"location":{"location":"https://github.com/DistractedCat/ip.git","repoName":"ip","organization":"DistractedCat","domainName":"github"},"branch":"master","displayName":"DistractedCat/ip[master]","outputFolderName":"DistractedCat_ip_master"},{"location":{"location":"https://github.com/geraldngjx/ip.git","repoName":"ip","organization":"geraldngjx","domainName":"github"},"branch":"master","displayName":"geraldngjx/ip[master]","outputFolderName":"geraldngjx_ip_master"},{"location":{"location":"https://github.com/tayian/ip.git","repoName":"ip","organization":"tayian","domainName":"github"},"branch":"master","displayName":"tayian/ip[master]","outputFolderName":"tayian_ip_master"},{"location":{"location":"https://github.com/AlfredBeNoel/ip.git","repoName":"ip","organization":"AlfredBeNoel","domainName":"github"},"branch":"master","displayName":"AlfredBeNoel/ip[master]","outputFolderName":"AlfredBeNoel_ip_master"},{"location":{"location":"https://github.com/Chen1x/ip.git","repoName":"ip","organization":"Chen1x","domainName":"github"},"branch":"master","displayName":"Chen1x/ip[master]","outputFolderName":"Chen1x_ip_master"},{"location":{"location":"https://github.com/juzzztinsoong/ip.git","repoName":"ip","organization":"juzzztinsoong","domainName":"github"},"branch":"master","displayName":"juzzztinsoong/ip[master]","outputFolderName":"juzzztinsoong_ip_master"},{"location":{"location":"https://github.com/lambraydon/ip.git","repoName":"ip","organization":"lambraydon","domainName":"github"},"branch":"master","displayName":"lambraydon/ip[master]","outputFolderName":"lambraydon_ip_master"},{"location":{"location":"https://github.com/lilozz2/ip.git","repoName":"ip","organization":"lilozz2","domainName":"github"},"branch":"master","displayName":"lilozz2/ip[master]","outputFolderName":"lilozz2_ip_master"},{"location":{"location":"https://github.com/tyouwei/ip.git","repoName":"ip","organization":"tyouwei","domainName":"github"},"branch":"master","displayName":"tyouwei/ip[master]","outputFolderName":"tyouwei_ip_master"},{"location":{"location":"https://github.com/Kailash201/ip.git","repoName":"ip","organization":"Kailash201","domainName":"github"},"branch":"master","displayName":"Kailash201/ip[master]","outputFolderName":"Kailash201_ip_master"},{"location":{"location":"https://github.com/tjingsheng/ip.git","repoName":"ip","organization":"tjingsheng","domainName":"github"},"branch":"master","displayName":"tjingsheng/ip[master]","outputFolderName":"tjingsheng_ip_master"},{"location":{"location":"https://github.com/pangyyen/ip.git","repoName":"ip","organization":"pangyyen","domainName":"github"},"branch":"master","displayName":"pangyyen/ip[master]","outputFolderName":"pangyyen_ip_master"},{"location":{"location":"https://github.com/Khaleelur-Rahman/ip.git","repoName":"ip","organization":"Khaleelur-Rahman","domainName":"github"},"branch":"master","displayName":"Khaleelur-Rahman/ip[master]","outputFolderName":"Khaleelur-Rahman_ip_master"},{"location":{"location":"https://github.com/erohsikivar/ip.git","repoName":"ip","organization":"erohsikivar","domainName":"github"},"branch":"master","displayName":"erohsikivar/ip[master]","outputFolderName":"erohsikivar_ip_master"},{"location":{"location":"https://github.com/shishirbychapur/ip.git","repoName":"ip","organization":"shishirbychapur","domainName":"github"},"branch":"master","displayName":"shishirbychapur/ip[master]","outputFolderName":"shishirbychapur_ip_master"},{"location":{"location":"https://github.com/Badatprogrammiing/ip.git","repoName":"ip","organization":"Badatprogrammiing","domainName":"github"},"branch":"master","displayName":"Badatprogrammiing/ip[master]","outputFolderName":"Badatprogrammiing_ip_master"},{"location":{"location":"https://github.com/ravern/ip.git","repoName":"ip","organization":"ravern","domainName":"github"},"branch":"master","displayName":"ravern/ip[master]","outputFolderName":"ravern_ip_master"},{"location":{"location":"https://github.com/B-enguin/ip.git","repoName":"ip","organization":"B-enguin","domainName":"github"},"branch":"master","displayName":"B-enguin/ip[master]","outputFolderName":"B-enguin_ip_master"},{"location":{"location":"https://github.com/AlyssaPng/ip.git","repoName":"ip","organization":"AlyssaPng","domainName":"github"},"branch":"master","displayName":"AlyssaPng/ip[master]","outputFolderName":"AlyssaPng_ip_master"},{"location":{"location":"https://github.com/flexibo/ip.git","repoName":"ip","organization":"flexibo","domainName":"github"},"branch":"master","displayName":"flexibo/ip[master]","outputFolderName":"flexibo_ip_master"},{"location":{"location":"https://github.com/lordidiot/ip.git","repoName":"ip","organization":"lordidiot","domainName":"github"},"branch":"master","displayName":"lordidiot/ip[master]","outputFolderName":"lordidiot_ip_master"},{"location":{"location":"https://github.com/vansh284/ip.git","repoName":"ip","organization":"vansh284","domainName":"github"},"branch":"master","displayName":"vansh284/ip[master]","outputFolderName":"vansh284_ip_master"},{"location":{"location":"https://github.com/samuelim01/ip.git","repoName":"ip","organization":"samuelim01","domainName":"github"},"branch":"master","displayName":"samuelim01/ip[master]","outputFolderName":"samuelim01_ip_master"},{"location":{"location":"https://github.com/WZWren/ip.git","repoName":"ip","organization":"WZWren","domainName":"github"},"branch":"master","displayName":"WZWren/ip[master]","outputFolderName":"WZWren_ip_master"},{"location":{"location":"https://github.com/cxo05/ip.git","repoName":"ip","organization":"cxo05","domainName":"github"},"branch":"master","displayName":"cxo05/ip[master]","outputFolderName":"cxo05_ip_master"},{"location":{"location":"https://github.com/sudarshan2401/ip.git","repoName":"ip","organization":"sudarshan2401","domainName":"github"},"branch":"master","displayName":"sudarshan2401/ip[master]","outputFolderName":"sudarshan2401_ip_master"},{"location":{"location":"https://github.com/jingyu987/ip.git","repoName":"ip","organization":"jingyu987","domainName":"github"},"branch":"master","displayName":"jingyu987/ip[master]","outputFolderName":"jingyu987_ip_master"},{"location":{"location":"https://github.com/H1410101/ip.git","repoName":"ip","organization":"H1410101","domainName":"github"},"branch":"master","displayName":"H1410101/ip[master]","outputFolderName":"H1410101_ip_master"},{"location":{"location":"https://github.com/MagnificentCreature/ip.git","repoName":"ip","organization":"MagnificentCreature","domainName":"github"},"branch":"master","displayName":"MagnificentCreature/ip[master]","outputFolderName":"MagnificentCreature_ip_master"},{"location":{"location":"https://github.com/shyanyong/ip.git","repoName":"ip","organization":"shyanyong","domainName":"github"},"branch":"master","displayName":"shyanyong/ip[master]","outputFolderName":"shyanyong_ip_master"},{"location":{"location":"https://github.com/peasantbird/ip.git","repoName":"ip","organization":"peasantbird","domainName":"github"},"branch":"master","displayName":"peasantbird/ip[master]","outputFolderName":"peasantbird_ip_master"},{"location":{"location":"https://github.com/tllshan/ip.git","repoName":"ip","organization":"tllshan","domainName":"github"},"branch":"master","displayName":"tllshan/ip[master]","outputFolderName":"tllshan_ip_master"},{"location":{"location":"https://github.com/sushiyade/ip.git","repoName":"ip","organization":"sushiyade","domainName":"github"},"branch":"master","displayName":"sushiyade/ip[master]","outputFolderName":"sushiyade_ip_master"},{"location":{"location":"https://github.com/iyioon/ip.git","repoName":"ip","organization":"iyioon","domainName":"github"},"branch":"master","displayName":"iyioon/ip[master]","outputFolderName":"iyioon_ip_master"},{"location":{"location":"https://github.com/shashahchk/ip.git","repoName":"ip","organization":"shashahchk","domainName":"github"},"branch":"master","displayName":"shashahchk/ip[master]","outputFolderName":"shashahchk_ip_master"},{"location":{"location":"https://github.com/Chandan8186/ip.git","repoName":"ip","organization":"Chandan8186","domainName":"github"},"branch":"master","displayName":"Chandan8186/ip[master]","outputFolderName":"Chandan8186_ip_master"},{"location":{"location":"https://github.com/wesho1107/ip.git","repoName":"ip","organization":"wesho1107","domainName":"github"},"branch":"master","displayName":"wesho1107/ip[master]","outputFolderName":"wesho1107_ip_master"},{"location":{"location":"https://github.com/tim-pipi/ip.git","repoName":"ip","organization":"tim-pipi","domainName":"github"},"branch":"master","displayName":"tim-pipi/ip[master]","outputFolderName":"tim-pipi_ip_master"},{"location":{"location":"https://github.com/emzm2023/ip.git","repoName":"ip","organization":"emzm2023","domainName":"github"},"branch":"master","displayName":"emzm2023/ip[master]","outputFolderName":"emzm2023_ip_master"},{"location":{"location":"https://github.com/dlathyun/ip.git","repoName":"ip","organization":"dlathyun","domainName":"github"},"branch":"master","displayName":"dlathyun/ip[master]","outputFolderName":"dlathyun_ip_master"},{"location":{"location":"https://github.com/tanboonkhong/ip.git","repoName":"ip","organization":"tanboonkhong","domainName":"github"},"branch":"master","displayName":"tanboonkhong/ip[master]","outputFolderName":"tanboonkhong_ip_master"},{"location":{"location":"https://github.com/joeng03/ip.git","repoName":"ip","organization":"joeng03","domainName":"github"},"branch":"master","displayName":"joeng03/ip[master]","outputFolderName":"joeng03_ip_master"},{"location":{"location":"https://github.com/VN-Hao/ip.git","repoName":"ip","organization":"VN-Hao","domainName":"github"},"branch":"master","displayName":"VN-Hao/ip[master]","outputFolderName":"VN-Hao_ip_master"},{"location":{"location":"https://github.com/NgChunMan/ip.git","repoName":"ip","organization":"NgChunMan","domainName":"github"},"branch":"master","displayName":"NgChunMan/ip[master]","outputFolderName":"NgChunMan_ip_master"},{"location":{"location":"https://github.com/TiwKangXu/ip.git","repoName":"ip","organization":"TiwKangXu","domainName":"github"},"branch":"master","displayName":"TiwKangXu/ip[master]","outputFolderName":"TiwKangXu_ip_master"},{"location":{"location":"https://github.com/josepholim/ip.git","repoName":"ip","organization":"josepholim","domainName":"github"},"branch":"master","displayName":"josepholim/ip[master]","outputFolderName":"josepholim_ip_master"},{"location":{"location":"https://github.com/dinde2004/ip.git","repoName":"ip","organization":"dinde2004","domainName":"github"},"branch":"master","displayName":"dinde2004/ip[master]","outputFolderName":"dinde2004_ip_master"},{"location":{"location":"https://github.com/yucongkoo/ip.git","repoName":"ip","organization":"yucongkoo","domainName":"github"},"branch":"master","displayName":"yucongkoo/ip[master]","outputFolderName":"yucongkoo_ip_master"},{"location":{"location":"https://github.com/TohLiYuan/ip.git","repoName":"ip","organization":"TohLiYuan","domainName":"github"},"branch":"master","displayName":"TohLiYuan/ip[master]","outputFolderName":"TohLiYuan_ip_master"},{"location":{"location":"https://github.com/NereusWB922/ip.git","repoName":"ip","organization":"NereusWB922","domainName":"github"},"branch":"master","displayName":"NereusWB922/ip[master]","outputFolderName":"NereusWB922_ip_master"},{"location":{"location":"https://github.com/ph-nathan/ip.git","repoName":"ip","organization":"ph-nathan","domainName":"github"},"branch":"master","displayName":"ph-nathan/ip[master]","outputFolderName":"ph-nathan_ip_master"},{"location":{"location":"https://github.com/antonTan96/ip.git","repoName":"ip","organization":"antonTan96","domainName":"github"},"branch":"master","displayName":"antonTan96/ip[master]","outputFolderName":"antonTan96_ip_master"},{"location":{"location":"https://github.com/WinstonLeonard/ip.git","repoName":"ip","organization":"WinstonLeonard","domainName":"github"},"branch":"master","displayName":"WinstonLeonard/ip[master]","outputFolderName":"WinstonLeonard_ip_master"},{"location":{"location":"https://github.com/TehOPanas/ip.git","repoName":"ip","organization":"TehOPanas","domainName":"github"},"branch":"master","displayName":"TehOPanas/ip[master]","outputFolderName":"TehOPanas_ip_master"},{"location":{"location":"https://github.com/marioalvaro/ip.git","repoName":"ip","organization":"marioalvaro","domainName":"github"},"branch":"master","displayName":"marioalvaro/ip[master]","outputFolderName":"marioalvaro_ip_master"},{"location":{"location":"https://github.com/LINCHENYU2030S/ip.git","repoName":"ip","organization":"LINCHENYU2030S","domainName":"github"},"branch":"master","displayName":"LINCHENYU2030S/ip[master]","outputFolderName":"LINCHENYU2030S_ip_master"},{"location":{"location":"https://github.com/LamJiuFong/ip.git","repoName":"ip","organization":"LamJiuFong","domainName":"github"},"branch":"master","displayName":"LamJiuFong/ip[master]","outputFolderName":"LamJiuFong_ip_master"},{"location":{"location":"https://github.com/AndrewJanong/ip.git","repoName":"ip","organization":"AndrewJanong","domainName":"github"},"branch":"master","displayName":"AndrewJanong/ip[master]","outputFolderName":"AndrewJanong_ip_master"},{"location":{"location":"https://github.com/songfangyl/ip.git","repoName":"ip","organization":"songfangyl","domainName":"github"},"branch":"master","displayName":"songfangyl/ip[master]","outputFolderName":"songfangyl_ip_master"},{"location":{"location":"https://github.com/AriellaCallista/ip.git","repoName":"ip","organization":"AriellaCallista","domainName":"github"},"branch":"master","displayName":"AriellaCallista/ip[master]","outputFolderName":"AriellaCallista_ip_master"},{"location":{"location":"https://github.com/KamJiaYue/ip.git","repoName":"ip","organization":"KamJiaYue","domainName":"github"},"branch":"master","displayName":"KamJiaYue/ip[master]","outputFolderName":"KamJiaYue_ip_master"},{"location":{"location":"https://github.com/feifeiraindrops/ip.git","repoName":"ip","organization":"feifeiraindrops","domainName":"github"},"branch":"master","displayName":"feifeiraindrops/ip[master]","outputFolderName":"feifeiraindrops_ip_master"},{"location":{"location":"https://github.com/czhiruo/ip.git","repoName":"ip","organization":"czhiruo","domainName":"github"},"branch":"master","displayName":"czhiruo/ip[master]","outputFolderName":"czhiruo_ip_master"},{"location":{"location":"https://github.com/butteredyakiimo/ip.git","repoName":"ip","organization":"butteredyakiimo","domainName":"github"},"branch":"master","displayName":"butteredyakiimo/ip[master]","outputFolderName":"butteredyakiimo_ip_master"},{"location":{"location":"https://github.com/RiyaMehta2211/ip.git","repoName":"ip","organization":"RiyaMehta2211","domainName":"github"},"branch":"master","displayName":"RiyaMehta2211/ip[master]","outputFolderName":"RiyaMehta2211_ip_master"},{"location":{"location":"https://github.com/beatricecst/ip.git","repoName":"ip","organization":"beatricecst","domainName":"github"},"branch":"master","displayName":"beatricecst/ip[master]","outputFolderName":"beatricecst_ip_master"},{"location":{"location":"https://github.com/maypfv/ip.git","repoName":"ip","organization":"maypfv","domainName":"github"},"branch":"master","displayName":"maypfv/ip[master]","outputFolderName":"maypfv_ip_master"},{"location":{"location":"https://github.com/pra-navi/ip.git","repoName":"ip","organization":"pra-navi","domainName":"github"},"branch":"master","displayName":"pra-navi/ip[master]","outputFolderName":"pra-navi_ip_master"},{"location":{"location":"https://github.com/xxiaoweii/ip.git","repoName":"ip","organization":"xxiaoweii","domainName":"github"},"branch":"master","displayName":"xxiaoweii/ip[master]","outputFolderName":"xxiaoweii_ip_master"},{"location":{"location":"https://github.com/qyaner/ip.git","repoName":"ip","organization":"qyaner","domainName":"github"},"branch":"master","displayName":"qyaner/ip[master]","outputFolderName":"qyaner_ip_master"},{"location":{"location":"https://github.com/qz1004/ip.git","repoName":"ip","organization":"qz1004","domainName":"github"},"branch":"master","displayName":"qz1004/ip[master]","outputFolderName":"qz1004_ip_master"},{"location":{"location":"https://github.com/miljyy/ip.git","repoName":"ip","organization":"miljyy","domainName":"github"},"branch":"master","displayName":"miljyy/ip[master]","outputFolderName":"miljyy_ip_master"},{"location":{"location":"https://github.com/yihfei/ip.git","repoName":"ip","organization":"yihfei","domainName":"github"},"branch":"master","displayName":"yihfei/ip[master]","outputFolderName":"yihfei_ip_master"},{"location":{"location":"https://github.com/Gabriel4357/ip.git","repoName":"ip","organization":"Gabriel4357","domainName":"github"},"branch":"master","displayName":"Gabriel4357/ip[master]","outputFolderName":"Gabriel4357_ip_master"},{"location":{"location":"https://github.com/saraozn/ip.git","repoName":"ip","organization":"saraozn","domainName":"github"},"branch":"master","displayName":"saraozn/ip[master]","outputFolderName":"saraozn_ip_master"},{"location":{"location":"https://github.com/JeremyYong128/ip.git","repoName":"ip","organization":"JeremyYong128","domainName":"github"},"branch":"master","displayName":"JeremyYong128/ip[master]","outputFolderName":"JeremyYong128_ip_master"},{"location":{"location":"https://github.com/samuelmui8/ip.git","repoName":"ip","organization":"samuelmui8","domainName":"github"},"branch":"master","displayName":"samuelmui8/ip[master]","outputFolderName":"samuelmui8_ip_master"},{"location":{"location":"https://github.com/elaineshijie/ip.git","repoName":"ip","organization":"elaineshijie","domainName":"github"},"branch":"master","displayName":"elaineshijie/ip[master]","outputFolderName":"elaineshijie_ip_master"},{"location":{"location":"https://github.com/zhengyup/ip.git","repoName":"ip","organization":"zhengyup","domainName":"github"},"branch":"master","displayName":"zhengyup/ip[master]","outputFolderName":"zhengyup_ip_master"},{"location":{"location":"https://github.com/ruishanteo/ip.git","repoName":"ip","organization":"ruishanteo","domainName":"github"},"branch":"master","displayName":"ruishanteo/ip[master]","outputFolderName":"ruishanteo_ip_master"},{"location":{"location":"https://github.com/lynnlow175/ip.git","repoName":"ip","organization":"lynnlow175","domainName":"github"},"branch":"master","displayName":"lynnlow175/ip[master]","outputFolderName":"lynnlow175_ip_master"},{"location":{"location":"https://github.com/kohkaijie/ip.git","repoName":"ip","organization":"kohkaijie","domainName":"github"},"branch":"master","displayName":"kohkaijie/ip[master]","outputFolderName":"kohkaijie_ip_master"},{"location":{"location":"https://github.com/CelestineTan03/ip.git","repoName":"ip","organization":"CelestineTan03","domainName":"github"},"branch":"master","displayName":"CelestineTan03/ip[master]","outputFolderName":"CelestineTan03_ip_master"},{"location":{"location":"https://github.com/PearlynnT/ip.git","repoName":"ip","organization":"PearlynnT","domainName":"github"},"branch":"master","displayName":"PearlynnT/ip[master]","outputFolderName":"PearlynnT_ip_master"},{"location":{"location":"https://github.com/Elijah5399/ip.git","repoName":"ip","organization":"Elijah5399","domainName":"github"},"branch":"master","displayName":"Elijah5399/ip[master]","outputFolderName":"Elijah5399_ip_master"},{"location":{"location":"https://github.com/nicleongyj/ip.git","repoName":"ip","organization":"nicleongyj","domainName":"github"},"branch":"master","displayName":"nicleongyj/ip[master]","outputFolderName":"nicleongyj_ip_master"},{"location":{"location":"https://github.com/AnnabelTing/ip.git","repoName":"ip","organization":"AnnabelTing","domainName":"github"},"branch":"master","displayName":"AnnabelTing/ip[master]","outputFolderName":"AnnabelTing_ip_master"},{"location":{"location":"https://github.com/jrchoo/ip.git","repoName":"ip","organization":"jrchoo","domainName":"github"},"branch":"master","displayName":"jrchoo/ip[master]","outputFolderName":"jrchoo_ip_master"},{"location":{"location":"https://github.com/wujy28/ip.git","repoName":"ip","organization":"wujy28","domainName":"github"},"branch":"master","displayName":"wujy28/ip[master]","outputFolderName":"wujy28_ip_master"},{"location":{"location":"https://github.com/Nauxe/ip.git","repoName":"ip","organization":"Nauxe","domainName":"github"},"branch":"master","displayName":"Nauxe/ip[master]","outputFolderName":"Nauxe_ip_master"},{"location":{"location":"https://github.com/yyyaohhh/ip.git","repoName":"ip","organization":"yyyaohhh","domainName":"github"},"branch":"master","displayName":"yyyaohhh/ip[master]","outputFolderName":"yyyaohhh_ip_master"},{"location":{"location":"https://github.com/xenosf/ip.git","repoName":"ip","organization":"xenosf","domainName":"github"},"branch":"master","displayName":"xenosf/ip[master]","outputFolderName":"xenosf_ip_master"},{"location":{"location":"https://github.com/WinSheng1/ip.git","repoName":"ip","organization":"WinSheng1","domainName":"github"},"branch":"master","displayName":"WinSheng1/ip[master]","outputFolderName":"WinSheng1_ip_master"},{"location":{"location":"https://github.com/nreHieW/ip.git","repoName":"ip","organization":"nreHieW","domainName":"github"},"branch":"master","displayName":"nreHieW/ip[master]","outputFolderName":"nreHieW_ip_master"},{"location":{"location":"https://github.com/peiran18/ip.git","repoName":"ip","organization":"peiran18","domainName":"github"},"branch":"master","displayName":"peiran18/ip[master]","outputFolderName":"peiran18_ip_master"},{"location":{"location":"https://github.com/cheeggered/ip.git","repoName":"ip","organization":"cheeggered","domainName":"github"},"branch":"master","displayName":"cheeggered/ip[master]","outputFolderName":"cheeggered_ip_master"},{"location":{"location":"https://github.com/GohTengFong/ip.git","repoName":"ip","organization":"GohTengFong","domainName":"github"},"branch":"master","displayName":"GohTengFong/ip[master]","outputFolderName":"GohTengFong_ip_master"},{"location":{"location":"https://github.com/jibtaf/ip.git","repoName":"ip","organization":"jibtaf","domainName":"github"},"branch":"master","displayName":"jibtaf/ip[master]","outputFolderName":"jibtaf_ip_master"},{"location":{"location":"https://github.com/bhnuka/ip.git","repoName":"ip","organization":"bhnuka","domainName":"github"},"branch":"master","displayName":"bhnuka/ip[master]","outputFolderName":"bhnuka_ip_master"},{"location":{"location":"https://github.com/laurenlim2112/ip.git","repoName":"ip","organization":"laurenlim2112","domainName":"github"},"branch":"master","displayName":"laurenlim2112/ip[master]","outputFolderName":"laurenlim2112_ip_master"},{"location":{"location":"https://github.com/howenc/ip.git","repoName":"ip","organization":"howenc","domainName":"github"},"branch":"master","displayName":"howenc/ip[master]","outputFolderName":"howenc_ip_master"},{"location":{"location":"https://github.com/Kokseng1/ip.git","repoName":"ip","organization":"Kokseng1","domainName":"github"},"branch":"master","displayName":"Kokseng1/ip[master]","outputFolderName":"Kokseng1_ip_master"},{"location":{"location":"https://github.com/yiwen101/ip.git","repoName":"ip","organization":"yiwen101","domainName":"github"},"branch":"master","displayName":"yiwen101/ip[master]","outputFolderName":"yiwen101_ip_master"},{"location":{"location":"https://github.com/Cikguseven/ip.git","repoName":"ip","organization":"Cikguseven","domainName":"github"},"branch":"master","displayName":"Cikguseven/ip[master]","outputFolderName":"Cikguseven_ip_master"},{"location":{"location":"https://github.com/javinchua/ip.git","repoName":"ip","organization":"javinchua","domainName":"github"},"branch":"master","displayName":"javinchua/ip[master]","outputFolderName":"javinchua_ip_master"},{"location":{"location":"https://github.com/frrrrry/ip.git","repoName":"ip","organization":"frrrrry","domainName":"github"},"branch":"master","displayName":"frrrrry/ip[master]","outputFolderName":"frrrrry_ip_master"},{"location":{"location":"https://github.com/YeoBohShin/ip.git","repoName":"ip","organization":"YeoBohShin","domainName":"github"},"branch":"master","displayName":"YeoBohShin/ip[master]","outputFolderName":"YeoBohShin_ip_master"},{"location":{"location":"https://github.com/yongning0310/ip.git","repoName":"ip","organization":"yongning0310","domainName":"github"},"branch":"master","displayName":"yongning0310/ip[master]","outputFolderName":"yongning0310_ip_master"},{"location":{"location":"https://github.com/SimWPEric/ip.git","repoName":"ip","organization":"SimWPEric","domainName":"github"},"branch":"master","displayName":"SimWPEric/ip[master]","outputFolderName":"SimWPEric_ip_master"},{"location":{"location":"https://github.com/sopa301/ip.git","repoName":"ip","organization":"sopa301","domainName":"github"},"branch":"master","displayName":"sopa301/ip[master]","outputFolderName":"sopa301_ip_master"},{"location":{"location":"https://github.com/nananakx-x/ip.git","repoName":"ip","organization":"nananakx-x","domainName":"github"},"branch":"master","displayName":"nananakx-x/ip[master]","outputFolderName":"nananakx-x_ip_master"},{"location":{"location":"https://github.com/LuoZYi/ip.git","repoName":"ip","organization":"LuoZYi","domainName":"github"},"branch":"master","displayName":"LuoZYi/ip[master]","outputFolderName":"LuoZYi_ip_master"},{"location":{"location":"https://github.com/LinWanLeii/ip.git","repoName":"ip","organization":"LinWanLeii","domainName":"github"},"branch":"master","displayName":"LinWanLeii/ip[master]","outputFolderName":"LinWanLeii_ip_master"},{"location":{"location":"https://github.com/mingyuanc/ip.git","repoName":"ip","organization":"mingyuanc","domainName":"github"},"branch":"master","displayName":"mingyuanc/ip[master]","outputFolderName":"mingyuanc_ip_master"},{"location":{"location":"https://github.com/chonguschonguschongus/ip.git","repoName":"ip","organization":"chonguschonguschongus","domainName":"github"},"branch":"master","displayName":"chonguschonguschongus/ip[master]","outputFolderName":"chonguschonguschongus_ip_master"},{"location":{"location":"https://github.com/yanghengtang/ip.git","repoName":"ip","organization":"yanghengtang","domainName":"github"},"branch":"master","displayName":"yanghengtang/ip[master]","outputFolderName":"yanghengtang_ip_master"},{"location":{"location":"https://github.com/victorpengmx/ip.git","repoName":"ip","organization":"victorpengmx","domainName":"github"},"branch":"master","displayName":"victorpengmx/ip[master]","outputFolderName":"victorpengmx_ip_master"},{"location":{"location":"https://github.com/kanna-1/ip.git","repoName":"ip","organization":"kanna-1","domainName":"github"},"branch":"master","displayName":"kanna-1/ip[master]","outputFolderName":"kanna-1_ip_master"},{"location":{"location":"https://github.com/ncduy0303/ip.git","repoName":"ip","organization":"ncduy0303","domainName":"github"},"branch":"master","displayName":"ncduy0303/ip[master]","outputFolderName":"ncduy0303_ip_master"},{"location":{"location":"https://github.com/jannnice/ip.git","repoName":"ip","organization":"jannnice","domainName":"github"},"branch":"master","displayName":"jannnice/ip[master]","outputFolderName":"jannnice_ip_master"},{"location":{"location":"https://github.com/itssisi/ip.git","repoName":"ip","organization":"itssisi","domainName":"github"},"branch":"master","displayName":"itssisi/ip[master]","outputFolderName":"itssisi_ip_master"},{"location":{"location":"https://github.com/freddychenyouren2/ip.git","repoName":"ip","organization":"freddychenyouren2","domainName":"github"},"branch":"master","displayName":"freddychenyouren2/ip[master]","outputFolderName":"freddychenyouren2_ip_master"},{"location":{"location":"https://github.com/Vanessamae23/ip.git","repoName":"ip","organization":"Vanessamae23","domainName":"github"},"branch":"master","displayName":"Vanessamae23/ip[master]","outputFolderName":"Vanessamae23_ip_master"},{"location":{"location":"https://github.com/cbj252/ip.git","repoName":"ip","organization":"cbj252","domainName":"github"},"branch":"master","displayName":"cbj252/ip[master]","outputFolderName":"cbj252_ip_master"},{"location":{"location":"https://github.com/freshcabbage123/ip.git","repoName":"ip","organization":"freshcabbage123","domainName":"github"},"branch":"master","displayName":"freshcabbage123/ip[master]","outputFolderName":"freshcabbage123_ip_master"},{"location":{"location":"https://github.com/thienmy0/ip.git","repoName":"ip","organization":"thienmy0","domainName":"github"},"branch":"master","displayName":"thienmy0/ip[master]","outputFolderName":"thienmy0_ip_master"},{"location":{"location":"https://github.com/glenngnng/ip.git","repoName":"ip","organization":"glenngnng","domainName":"github"},"branch":"master","displayName":"glenngnng/ip[master]","outputFolderName":"glenngnng_ip_master"},{"location":{"location":"https://github.com/Darren159/ip.git","repoName":"ip","organization":"Darren159","domainName":"github"},"branch":"master","displayName":"Darren159/ip[master]","outputFolderName":"Darren159_ip_master"},{"location":{"location":"https://github.com/J-hta-n/ip.git","repoName":"ip","organization":"J-hta-n","domainName":"github"},"branch":"master","displayName":"J-hta-n/ip[master]","outputFolderName":"J-hta-n_ip_master"},{"location":{"location":"https://github.com/evanyan13/ip.git","repoName":"ip","organization":"evanyan13","domainName":"github"},"branch":"master","displayName":"evanyan13/ip[master]","outputFolderName":"evanyan13_ip_master"},{"location":{"location":"https://github.com/tanveersingh10/ip.git","repoName":"ip","organization":"tanveersingh10","domainName":"github"},"branch":"master","displayName":"tanveersingh10/ip[master]","outputFolderName":"tanveersingh10_ip_master"},{"location":{"location":"https://github.com/neyapraveen/ip.git","repoName":"ip","organization":"neyapraveen","domainName":"github"},"branch":"master","displayName":"neyapraveen/ip[master]","outputFolderName":"neyapraveen_ip_master"},{"location":{"location":"https://github.com/weeweh/ip.git","repoName":"ip","organization":"weeweh","domainName":"github"},"branch":"master","displayName":"weeweh/ip[master]","outputFolderName":"weeweh_ip_master"},{"location":{"location":"https://github.com/HugeNoob/ip.git","repoName":"ip","organization":"HugeNoob","domainName":"github"},"branch":"master","displayName":"HugeNoob/ip[master]","outputFolderName":"HugeNoob_ip_master"},{"location":{"location":"https://github.com/wasjoe1/ip.git","repoName":"ip","organization":"wasjoe1","domainName":"github"},"branch":"master","displayName":"wasjoe1/ip[master]","outputFolderName":"wasjoe1_ip_master"},{"location":{"location":"https://github.com/s-kybound/ip.git","repoName":"ip","organization":"s-kybound","domainName":"github"},"branch":"master","displayName":"s-kybound/ip[master]","outputFolderName":"s-kybound_ip_master"},{"location":{"location":"https://github.com/Singa-pirate/ip.git","repoName":"ip","organization":"Singa-pirate","domainName":"github"},"branch":"master","displayName":"Singa-pirate/ip[master]","outputFolderName":"Singa-pirate_ip_master"},{"location":{"location":"https://github.com/wanghejin/ip.git","repoName":"ip","organization":"wanghejin","domainName":"github"},"branch":"master","displayName":"wanghejin/ip[master]","outputFolderName":"wanghejin_ip_master"},{"location":{"location":"https://github.com/yarnmengnus/ip.git","repoName":"ip","organization":"yarnmengnus","domainName":"github"},"branch":"master","displayName":"yarnmengnus/ip[master]","outputFolderName":"yarnmengnus_ip_master"},{"location":{"location":"https://github.com/Kurtyjlee/ip.git","repoName":"ip","organization":"Kurtyjlee","domainName":"github"},"branch":"master","displayName":"Kurtyjlee/ip[master]","outputFolderName":"Kurtyjlee_ip_master"},{"location":{"location":"https://github.com/jellywaiyan/ip.git","repoName":"ip","organization":"jellywaiyan","domainName":"github"},"branch":"master","displayName":"jellywaiyan/ip[master]","outputFolderName":"jellywaiyan_ip_master"},{"location":{"location":"https://github.com/ylyma/ip.git","repoName":"ip","organization":"ylyma","domainName":"github"},"branch":"master","displayName":"ylyma/ip[master]","outputFolderName":"ylyma_ip_master"},{"location":{"location":"https://github.com/revdrag/ip.git","repoName":"ip","organization":"revdrag","domainName":"github"},"branch":"master","displayName":"revdrag/ip[master]","outputFolderName":"revdrag_ip_master"},{"location":{"location":"https://github.com/vijay-shankaranand/ip.git","repoName":"ip","organization":"vijay-shankaranand","domainName":"github"},"branch":"master","displayName":"vijay-shankaranand/ip[master]","outputFolderName":"vijay-shankaranand_ip_master"},{"location":{"location":"https://github.com/lerxuann/ip.git","repoName":"ip","organization":"lerxuann","domainName":"github"},"branch":"master","displayName":"lerxuann/ip[master]","outputFolderName":"lerxuann_ip_master"},{"location":{"location":"https://github.com/yuxunn/ip.git","repoName":"ip","organization":"yuxunn","domainName":"github"},"branch":"master","displayName":"yuxunn/ip[master]","outputFolderName":"yuxunn_ip_master"},{"location":{"location":"https://github.com/zannloo/ip.git","repoName":"ip","organization":"zannloo","domainName":"github"},"branch":"master","displayName":"zannloo/ip[master]","outputFolderName":"zannloo_ip_master"},{"location":{"location":"https://github.com/AryanG01/ip.git","repoName":"ip","organization":"AryanG01","domainName":"github"},"branch":"master","displayName":"AryanG01/ip[master]","outputFolderName":"AryanG01_ip_master"},{"location":{"location":"https://github.com/oeggy03/ip.git","repoName":"ip","organization":"oeggy03","domainName":"github"},"branch":"master","displayName":"oeggy03/ip[master]","outputFolderName":"oeggy03_ip_master"},{"location":{"location":"https://github.com/jeffrey-jian/ip.git","repoName":"ip","organization":"jeffrey-jian","domainName":"github"},"branch":"master","displayName":"jeffrey-jian/ip[master]","outputFolderName":"jeffrey-jian_ip_master"},{"location":{"location":"https://github.com/nicholastng010601/ip.git","repoName":"ip","organization":"nicholastng010601","domainName":"github"},"branch":"master","displayName":"nicholastng010601/ip[master]","outputFolderName":"nicholastng010601_ip_master"},{"location":{"location":"https://github.com/Weiennn/ip.git","repoName":"ip","organization":"Weiennn","domainName":"github"},"branch":"master","displayName":"Weiennn/ip[master]","outputFolderName":"Weiennn_ip_master"},{"location":{"location":"https://github.com/tayruxin/ip.git","repoName":"ip","organization":"tayruxin","domainName":"github"},"branch":"master","displayName":"tayruxin/ip[master]","outputFolderName":"tayruxin_ip_master"},{"location":{"location":"https://github.com/xyT-T/ip.git","repoName":"ip","organization":"xyT-T","domainName":"github"},"branch":"master","displayName":"xyT-T/ip[master]","outputFolderName":"xyT-T_ip_master"},{"location":{"location":"https://github.com/lunaroddity/ip.git","repoName":"ip","organization":"lunaroddity","domainName":"github"},"branch":"master","displayName":"lunaroddity/ip[master]","outputFolderName":"lunaroddity_ip_master"},{"location":{"location":"https://github.com/nabonitasen/ip.git","repoName":"ip","organization":"nabonitasen","domainName":"github"},"branch":"master","displayName":"nabonitasen/ip[master]","outputFolderName":"nabonitasen_ip_master"},{"location":{"location":"https://github.com/inezkok/ip.git","repoName":"ip","organization":"inezkok","domainName":"github"},"branch":"master","displayName":"inezkok/ip[master]","outputFolderName":"inezkok_ip_master"},{"location":{"location":"https://github.com/nknguyenhc/ip.git","repoName":"ip","organization":"nknguyenhc","domainName":"github"},"branch":"master","displayName":"nknguyenhc/ip[master]","outputFolderName":"nknguyenhc_ip_master"},{"location":{"location":"https://github.com/keaganpzh/ip.git","repoName":"ip","organization":"keaganpzh","domainName":"github"},"branch":"master","displayName":"keaganpzh/ip[master]","outputFolderName":"keaganpzh_ip_master"},{"location":{"location":"https://github.com/lululwtv/ip.git","repoName":"ip","organization":"lululwtv","domainName":"github"},"branch":"master","displayName":"lululwtv/ip[master]","outputFolderName":"lululwtv_ip_master"},{"location":{"location":"https://github.com/hcs1203/ip.git","repoName":"ip","organization":"hcs1203","domainName":"github"},"branch":"master","displayName":"hcs1203/ip[master]","outputFolderName":"hcs1203_ip_master"},{"location":{"location":"https://github.com/migfoo02/ip.git","repoName":"ip","organization":"migfoo02","domainName":"github"},"branch":"master","displayName":"migfoo02/ip[master]","outputFolderName":"migfoo02_ip_master"},{"location":{"location":"https://github.com/papataco14/ip.git","repoName":"ip","organization":"papataco14","domainName":"github"},"branch":"master","displayName":"papataco14/ip[master]","outputFolderName":"papataco14_ip_master"},{"location":{"location":"https://github.com/coderhuang559/ip.git","repoName":"ip","organization":"coderhuang559","domainName":"github"},"branch":"master","displayName":"coderhuang559/ip[master]","outputFolderName":"coderhuang559_ip_master"},{"location":{"location":"https://github.com/craigtonlian/ip.git","repoName":"ip","organization":"craigtonlian","domainName":"github"},"branch":"master","displayName":"craigtonlian/ip[master]","outputFolderName":"craigtonlian_ip_master"},{"location":{"location":"https://github.com/adammangzijun/ip.git","repoName":"ip","organization":"adammangzijun","domainName":"github"},"branch":"master","displayName":"adammangzijun/ip[master]","outputFolderName":"adammangzijun_ip_master"},{"location":{"location":"https://github.com/AlainS87/ip.git","repoName":"ip","organization":"AlainS87","domainName":"github"},"branch":"master","displayName":"AlainS87/ip[master]","outputFolderName":"AlainS87_ip_master"},{"location":{"location":"https://github.com/tanyyyming/ip.git","repoName":"ip","organization":"tanyyyming","domainName":"github"},"branch":"master","displayName":"tanyyyming/ip[master]","outputFolderName":"tanyyyming_ip_master"},{"location":{"location":"https://github.com/Saezenn/ip.git","repoName":"ip","organization":"Saezenn","domainName":"github"},"branch":"master","displayName":"Saezenn/ip[master]","outputFolderName":"Saezenn_ip_master"},{"location":{"location":"https://github.com/kayabuttertoastt/ip.git","repoName":"ip","organization":"kayabuttertoastt","domainName":"github"},"branch":"master","displayName":"kayabuttertoastt/ip[master]","outputFolderName":"kayabuttertoastt_ip_master"},{"location":{"location":"https://github.com/limjunxian1/ip.git","repoName":"ip","organization":"limjunxian1","domainName":"github"},"branch":"master","displayName":"limjunxian1/ip[master]","outputFolderName":"limjunxian1_ip_master"},{"location":{"location":"https://github.com/andrechuakj/ip.git","repoName":"ip","organization":"andrechuakj","domainName":"github"},"branch":"master","displayName":"andrechuakj/ip[master]","outputFolderName":"andrechuakj_ip_master"},{"location":{"location":"https://github.com/kwangthiag/ip.git","repoName":"ip","organization":"kwangthiag","domainName":"github"},"branch":"master","displayName":"kwangthiag/ip[master]","outputFolderName":"kwangthiag_ip_master"},{"location":{"location":"https://github.com/ricketytoc/ip.git","repoName":"ip","organization":"ricketytoc","domainName":"github"},"branch":"master","displayName":"ricketytoc/ip[master]","outputFolderName":"ricketytoc_ip_master"},{"location":{"location":"https://github.com/applepiofmyeye/ip.git","repoName":"ip","organization":"applepiofmyeye","domainName":"github"},"branch":"master","displayName":"applepiofmyeye/ip[master]","outputFolderName":"applepiofmyeye_ip_master"},{"location":{"location":"https://github.com/nubnubyas/ip.git","repoName":"ip","organization":"nubnubyas","domainName":"github"},"branch":"master","displayName":"nubnubyas/ip[master]","outputFolderName":"nubnubyas_ip_master"},{"location":{"location":"https://github.com/WeeeHung/ip.git","repoName":"ip","organization":"WeeeHung","domainName":"github"},"branch":"master","displayName":"WeeeHung/ip[master]","outputFolderName":"WeeeHung_ip_master"},{"location":{"location":"https://github.com/Eola-Z/ip.git","repoName":"ip","organization":"Eola-Z","domainName":"github"},"branch":"master","displayName":"Eola-Z/ip[master]","outputFolderName":"Eola-Z_ip_master"},{"location":{"location":"https://github.com/jordankanghm/ip.git","repoName":"ip","organization":"jordankanghm","domainName":"github"},"branch":"master","displayName":"jordankanghm/ip[master]","outputFolderName":"jordankanghm_ip_master"},{"location":{"location":"https://github.com/zacwong2151/ip.git","repoName":"ip","organization":"zacwong2151","domainName":"github"},"branch":"master","displayName":"zacwong2151/ip[master]","outputFolderName":"zacwong2151_ip_master"},{"location":{"location":"https://github.com/m1oojv/ip.git","repoName":"ip","organization":"m1oojv","domainName":"github"},"branch":"master","displayName":"m1oojv/ip[master]","outputFolderName":"m1oojv_ip_master"},{"location":{"location":"https://github.com/JCSnap/ip.git","repoName":"ip","organization":"JCSnap","domainName":"github"},"branch":"master","displayName":"JCSnap/ip[master]","outputFolderName":"JCSnap_ip_master"},{"location":{"location":"https://github.com/Nid21cs/ip.git","repoName":"ip","organization":"Nid21cs","domainName":"github"},"branch":"master","displayName":"Nid21cs/ip[master]","outputFolderName":"Nid21cs_ip_master"},{"location":{"location":"https://github.com/mfjkri/ip.git","repoName":"ip","organization":"mfjkri","domainName":"github"},"branch":"master","displayName":"mfjkri/ip[master]","outputFolderName":"mfjkri_ip_master"},{"location":{"location":"https://github.com/Choonyan02/ip.git","repoName":"ip","organization":"Choonyan02","domainName":"github"},"branch":"master","displayName":"Choonyan02/ip[master]","outputFolderName":"Choonyan02_ip_master"},{"location":{"location":"https://github.com/rayyan35p/ip.git","repoName":"ip","organization":"rayyan35p","domainName":"github"},"branch":"master","displayName":"rayyan35p/ip[master]","outputFolderName":"rayyan35p_ip_master"},{"location":{"location":"https://github.com/dhruvir29/ip.git","repoName":"ip","organization":"dhruvir29","domainName":"github"},"branch":"master","displayName":"dhruvir29/ip[master]","outputFolderName":"dhruvir29_ip_master"},{"location":{"location":"https://github.com/Mohammed-Faizzzz/ip.git","repoName":"ip","organization":"Mohammed-Faizzzz","domainName":"github"},"branch":"master","displayName":"Mohammed-Faizzzz/ip[master]","outputFolderName":"Mohammed-Faizzzz_ip_master"},{"location":{"location":"https://github.com/ruo-x/ip.git","repoName":"ip","organization":"ruo-x","domainName":"github"},"branch":"master","displayName":"ruo-x/ip[master]","outputFolderName":"ruo-x_ip_master"},{"location":{"location":"https://github.com/DonovanJJ/ip.git","repoName":"ip","organization":"DonovanJJ","domainName":"github"},"branch":"master","displayName":"DonovanJJ/ip[master]","outputFolderName":"DonovanJJ_ip_master"},{"location":{"location":"https://github.com/kristayeo/ip.git","repoName":"ip","organization":"kristayeo","domainName":"github"},"branch":"master","displayName":"kristayeo/ip[master]","outputFolderName":"kristayeo_ip_master"},{"location":{"location":"https://github.com/ZD292/ip.git","repoName":"ip","organization":"ZD292","domainName":"github"},"branch":"master","displayName":"ZD292/ip[master]","outputFolderName":"ZD292_ip_master"},{"location":{"location":"https://github.com/jingjie88/ip.git","repoName":"ip","organization":"jingjie88","domainName":"github"},"branch":"master","displayName":"jingjie88/ip[master]","outputFolderName":"jingjie88_ip_master"},{"location":{"location":"https://github.com/iantsaii/ip.git","repoName":"ip","organization":"iantsaii","domainName":"github"},"branch":"master","displayName":"iantsaii/ip[master]","outputFolderName":"iantsaii_ip_master"},{"location":{"location":"https://github.com/jingting1412/ip.git","repoName":"ip","organization":"jingting1412","domainName":"github"},"branch":"master","displayName":"jingting1412/ip[master]","outputFolderName":"jingting1412_ip_master"},{"location":{"location":"https://github.com/wnchan/ip.git","repoName":"ip","organization":"wnchan","domainName":"github"},"branch":"master","displayName":"wnchan/ip[master]","outputFolderName":"wnchan_ip_master"},{"location":{"location":"https://github.com/jack1e0/ip.git","repoName":"ip","organization":"jack1e0","domainName":"github"},"branch":"master","displayName":"jack1e0/ip[master]","outputFolderName":"jack1e0_ip_master"},{"location":{"location":"https://github.com/mingyu-wan/ip.git","repoName":"ip","organization":"mingyu-wan","domainName":"github"},"branch":"master","displayName":"mingyu-wan/ip[master]","outputFolderName":"mingyu-wan_ip_master"},{"location":{"location":"https://github.com/nicolengk/ip.git","repoName":"ip","organization":"nicolengk","domainName":"github"},"branch":"master","displayName":"nicolengk/ip[master]","outputFolderName":"nicolengk_ip_master"},{"location":{"location":"https://github.com/cyaoxuan/ip.git","repoName":"ip","organization":"cyaoxuan","domainName":"github"},"branch":"master","displayName":"cyaoxuan/ip[master]","outputFolderName":"cyaoxuan_ip_master"},{"location":{"location":"https://github.com/sunzihan23/ip.git","repoName":"ip","organization":"sunzihan23","domainName":"github"},"branch":"master","displayName":"sunzihan23/ip[master]","outputFolderName":"sunzihan23_ip_master"},{"location":{"location":"https://github.com/Goh-Li-Ting/ip.git","repoName":"ip","organization":"Goh-Li-Ting","domainName":"github"},"branch":"master","displayName":"Goh-Li-Ting/ip[master]","outputFolderName":"Goh-Li-Ting_ip_master"},{"location":{"location":"https://github.com/wjayee/ip.git","repoName":"ip","organization":"wjayee","domainName":"github"},"branch":"master","displayName":"wjayee/ip[master]","outputFolderName":"wjayee_ip_master"},{"location":{"location":"https://github.com/fuyiqiao/ip.git","repoName":"ip","organization":"fuyiqiao","domainName":"github"},"branch":"master","displayName":"fuyiqiao/ip[master]","outputFolderName":"fuyiqiao_ip_master"},{"location":{"location":"https://github.com/GlendaChong/ip.git","repoName":"ip","organization":"GlendaChong","domainName":"github"},"branch":"master","displayName":"GlendaChong/ip[master]","outputFolderName":"GlendaChong_ip_master"},{"location":{"location":"https://github.com/hyc17003/ip.git","repoName":"ip","organization":"hyc17003","domainName":"github"},"branch":"master","displayName":"hyc17003/ip[master]","outputFolderName":"hyc17003_ip_master"},{"location":{"location":"https://github.com/spatuly/ip.git","repoName":"ip","organization":"spatuly","domainName":"github"},"branch":"master","displayName":"spatuly/ip[master]","outputFolderName":"spatuly_ip_master"},{"location":{"location":"https://github.com/tanteckfang/ip.git","repoName":"ip","organization":"tanteckfang","domainName":"github"},"branch":"master","displayName":"tanteckfang/ip[master]","outputFolderName":"tanteckfang_ip_master"},{"location":{"location":"https://github.com/Clin-lyx/ip.git","repoName":"ip","organization":"Clin-lyx","domainName":"github"},"branch":"master","displayName":"Clin-lyx/ip[master]","outputFolderName":"Clin-lyx_ip_master"},{"location":{"location":"https://github.com/lyuanww/ip.git","repoName":"ip","organization":"lyuanww","domainName":"github"},"branch":"master","displayName":"lyuanww/ip[master]","outputFolderName":"lyuanww_ip_master"},{"location":{"location":"https://github.com/LimJH2002/ip.git","repoName":"ip","organization":"LimJH2002","domainName":"github"},"branch":"master","displayName":"LimJH2002/ip[master]","outputFolderName":"LimJH2002_ip_master"},{"location":{"location":"https://github.com/LWZ19/ip.git","repoName":"ip","organization":"LWZ19","domainName":"github"},"branch":"master","displayName":"LWZ19/ip[master]","outputFolderName":"LWZ19_ip_master"},{"location":{"location":"https://github.com/Gavino3o/ip.git","repoName":"ip","organization":"Gavino3o","domainName":"github"},"branch":"master","displayName":"Gavino3o/ip[master]","outputFolderName":"Gavino3o_ip_master"},{"location":{"location":"https://github.com/suryanshkushwaha/ip.git","repoName":"ip","organization":"suryanshkushwaha","domainName":"github"},"branch":"master","displayName":"suryanshkushwaha/ip[master]","outputFolderName":"suryanshkushwaha_ip_master"},{"location":{"location":"https://github.com/JasonRay168/ip.git","repoName":"ip","organization":"JasonRay168","domainName":"github"},"branch":"master","displayName":"JasonRay168/ip[master]","outputFolderName":"JasonRay168_ip_master"},{"location":{"location":"https://github.com/jovkusuma/ip.git","repoName":"ip","organization":"jovkusuma","domainName":"github"},"branch":"master","displayName":"jovkusuma/ip[master]","outputFolderName":"jovkusuma_ip_master"},{"location":{"location":"https://github.com/Chrainx/ip.git","repoName":"ip","organization":"Chrainx","domainName":"github"},"branch":"master","displayName":"Chrainx/ip[master]","outputFolderName":"Chrainx_ip_master"},{"location":{"location":"https://github.com/Propene-Dan/ip.git","repoName":"ip","organization":"Propene-Dan","domainName":"github"},"branch":"master","displayName":"Propene-Dan/ip[master]","outputFolderName":"Propene-Dan_ip_master"},{"location":{"location":"https://github.com/Daphne789/ip.git","repoName":"ip","organization":"Daphne789","domainName":"github"},"branch":"master","displayName":"Daphne789/ip[master]","outputFolderName":"Daphne789_ip_master"},{"location":{"location":"https://github.com/ChuanXinNg/ip.git","repoName":"ip","organization":"ChuanXinNg","domainName":"github"},"branch":"master","displayName":"ChuanXinNg/ip[master]","outputFolderName":"ChuanXinNg_ip_master"},{"location":{"location":"https://github.com/LHeng1/ip.git","repoName":"ip","organization":"LHeng1","domainName":"github"},"branch":"master","displayName":"LHeng1/ip[master]","outputFolderName":"LHeng1_ip_master"},{"location":{"location":"https://github.com/wr1159/ip.git","repoName":"ip","organization":"wr1159","domainName":"github"},"branch":"master","displayName":"wr1159/ip[master]","outputFolderName":"wr1159_ip_master"},{"location":{"location":"https://github.com/wjacobw/ip.git","repoName":"ip","organization":"wjacobw","domainName":"github"},"branch":"master","displayName":"wjacobw/ip[master]","outputFolderName":"wjacobw_ip_master"},{"location":{"location":"https://github.com/tiongjjyi/ip.git","repoName":"ip","organization":"tiongjjyi","domainName":"github"},"branch":"master","displayName":"tiongjjyi/ip[master]","outputFolderName":"tiongjjyi_ip_master"},{"location":{"location":"https://github.com/longnguyentan/ip.git","repoName":"ip","organization":"longnguyentan","domainName":"github"},"branch":"master","displayName":"longnguyentan/ip[master]","outputFolderName":"longnguyentan_ip_master"},{"location":{"location":"https://github.com/proto-aiken-13/ip.git","repoName":"ip","organization":"proto-aiken-13","domainName":"github"},"branch":"master","displayName":"proto-aiken-13/ip[master]","outputFolderName":"proto-aiken-13_ip_master"},{"location":{"location":"https://github.com/junnengsoo/ip.git","repoName":"ip","organization":"junnengsoo","domainName":"github"},"branch":"master","displayName":"junnengsoo/ip[master]","outputFolderName":"junnengsoo_ip_master"},{"location":{"location":"https://github.com/yezkez10/ip.git","repoName":"ip","organization":"yezkez10","domainName":"github"},"branch":"master","displayName":"yezkez10/ip[master]","outputFolderName":"yezkez10_ip_master"},{"location":{"location":"https://github.com/jamesebond/ip.git","repoName":"ip","organization":"jamesebond","domainName":"github"},"branch":"master","displayName":"jamesebond/ip[master]","outputFolderName":"jamesebond_ip_master"},{"location":{"location":"https://github.com/alyssaongyx/ip.git","repoName":"ip","organization":"alyssaongyx","domainName":"github"},"branch":"master","displayName":"alyssaongyx/ip[master]","outputFolderName":"alyssaongyx_ip_master"},{"location":{"location":"https://github.com/Carlintyj/ip.git","repoName":"ip","organization":"Carlintyj","domainName":"github"},"branch":"master","displayName":"Carlintyj/ip[master]","outputFolderName":"Carlintyj_ip_master"},{"location":{"location":"https://github.com/ruth-lim/ip.git","repoName":"ip","organization":"ruth-lim","domainName":"github"},"branch":"master","displayName":"ruth-lim/ip[master]","outputFolderName":"ruth-lim_ip_master"},{"location":{"location":"https://github.com/licongshen12/ip.git","repoName":"ip","organization":"licongshen12","domainName":"github"},"branch":"master","displayName":"licongshen12/ip[master]","outputFolderName":"licongshen12_ip_master"},{"location":{"location":"https://github.com/thaddeusong/ip.git","repoName":"ip","organization":"thaddeusong","domainName":"github"},"branch":"master","displayName":"thaddeusong/ip[master]","outputFolderName":"thaddeusong_ip_master"},{"location":{"location":"https://github.com/LordSaumya/ip.git","repoName":"ip","organization":"LordSaumya","domainName":"github"},"branch":"master","displayName":"LordSaumya/ip[master]","outputFolderName":"LordSaumya_ip_master"},{"location":{"location":"https://github.com/Kevin-Liusx/ip.git","repoName":"ip","organization":"Kevin-Liusx","domainName":"github"},"branch":"master","displayName":"Kevin-Liusx/ip[master]","outputFolderName":"Kevin-Liusx_ip_master"},{"location":{"location":"https://github.com/Ken-Lai/ip.git","repoName":"ip","organization":"Ken-Lai","domainName":"github"},"branch":"master","displayName":"Ken-Lai/ip[master]","outputFolderName":"Ken-Lai_ip_master"},{"location":{"location":"https://github.com/KumChaiYin/ip.git","repoName":"ip","organization":"KumChaiYin","domainName":"github"},"branch":"master","displayName":"KumChaiYin/ip[master]","outputFolderName":"KumChaiYin_ip_master"},{"location":{"location":"https://github.com/pzl111/ip.git","repoName":"ip","organization":"pzl111","domainName":"github"},"branch":"master","displayName":"pzl111/ip[master]","outputFolderName":"pzl111_ip_master"},{"location":{"location":"https://github.com/alientian/ip.git","repoName":"ip","organization":"alientian","domainName":"github"},"branch":"master","displayName":"alientian/ip[master]","outputFolderName":"alientian_ip_master"},{"location":{"location":"https://github.com/eyelessrhyme7/ip.git","repoName":"ip","organization":"eyelessrhyme7","domainName":"github"},"branch":"master","displayName":"eyelessrhyme7/ip[master]","outputFolderName":"eyelessrhyme7_ip_master"},{"location":{"location":"https://github.com/AprupKale/ip.git","repoName":"ip","organization":"AprupKale","domainName":"github"},"branch":"master","displayName":"AprupKale/ip[master]","outputFolderName":"AprupKale_ip_master"},{"location":{"location":"https://github.com/kimshitong/ip.git","repoName":"ip","organization":"kimshitong","domainName":"github"},"branch":"master","displayName":"kimshitong/ip[master]","outputFolderName":"kimshitong_ip_master"},{"location":{"location":"https://github.com/Bryan-Goh/ip.git","repoName":"ip","organization":"Bryan-Goh","domainName":"github"},"branch":"master","displayName":"Bryan-Goh/ip[master]","outputFolderName":"Bryan-Goh_ip_master"},{"location":{"location":"https://github.com/tiif/ip.git","repoName":"ip","organization":"tiif","domainName":"github"},"branch":"master","displayName":"tiif/ip[master]","outputFolderName":"tiif_ip_master"},{"location":{"location":"https://github.com/angkyakdifp/ip.git","repoName":"ip","organization":"angkyakdifp","domainName":"github"},"branch":"master","displayName":"angkyakdifp/ip[master]","outputFolderName":"angkyakdifp_ip_master"},{"location":{"location":"https://github.com/Chen-Kuei/ip.git","repoName":"ip","organization":"Chen-Kuei","domainName":"github"},"branch":"master","displayName":"Chen-Kuei/ip[master]","outputFolderName":"Chen-Kuei_ip_master"},{"location":{"location":"https://github.com/SinhaVedant/ip.git","repoName":"ip","organization":"SinhaVedant","domainName":"github"},"branch":"master","displayName":"SinhaVedant/ip[master]","outputFolderName":"SinhaVedant_ip_master"},{"location":{"location":"https://github.com/D-Limiter/ip.git","repoName":"ip","organization":"D-Limiter","domainName":"github"},"branch":"master","displayName":"D-Limiter/ip[master]","outputFolderName":"D-Limiter_ip_master"},{"location":{"location":"https://github.com/larrywang0701/ip.git","repoName":"ip","organization":"larrywang0701","domainName":"github"},"branch":"master","displayName":"larrywang0701/ip[master]","outputFolderName":"larrywang0701_ip_master"},{"location":{"location":"https://github.com/Song-Mengfei/ip.git","repoName":"ip","organization":"Song-Mengfei","domainName":"github"},"branch":"master","displayName":"Song-Mengfei/ip[master]","outputFolderName":"Song-Mengfei_ip_master"},{"location":{"location":"https://github.com/ChangruHenryQian/ip.git","repoName":"ip","organization":"ChangruHenryQian","domainName":"github"},"branch":"master","displayName":"ChangruHenryQian/ip[master]","outputFolderName":"ChangruHenryQian_ip_master"},{"location":{"location":"https://github.com/ketweeen/ip.git","repoName":"ip","organization":"ketweeen","domainName":"github"},"branch":"master","displayName":"ketweeen/ip[master]","outputFolderName":"ketweeen_ip_master"},{"location":{"location":"https://github.com/RSXIX/ip.git","repoName":"ip","organization":"RSXIX","domainName":"github"},"branch":"master","displayName":"RSXIX/ip[master]","outputFolderName":"RSXIX_ip_master"},{"location":{"location":"https://github.com/songgthu/ip.git","repoName":"ip","organization":"songgthu","domainName":"github"},"branch":"master","displayName":"songgthu/ip[master]","outputFolderName":"songgthu_ip_master"},{"location":{"location":"https://github.com/maj0-0/ip.git","repoName":"ip","organization":"maj0-0","domainName":"github"},"branch":"master","displayName":"maj0-0/ip[master]","outputFolderName":"maj0-0_ip_master"},{"location":{"location":"https://github.com/tiongMax/ip.git","repoName":"ip","organization":"tiongMax","domainName":"github"},"branch":"master","displayName":"tiongMax/ip[master]","outputFolderName":"tiongMax_ip_master"},{"location":{"location":"https://github.com/A1WAYSD/ip.git","repoName":"ip","organization":"A1WAYSD","domainName":"github"},"branch":"master","displayName":"A1WAYSD/ip[master]","outputFolderName":"A1WAYSD_ip_master"},{"location":{"location":"https://github.com/hjoneweek/ip.git","repoName":"ip","organization":"hjoneweek","domainName":"github"},"branch":"master","displayName":"hjoneweek/ip[master]","outputFolderName":"hjoneweek_ip_master"},{"location":{"location":"https://github.com/itsNatTan/ip.git","repoName":"ip","organization":"itsNatTan","domainName":"github"},"branch":"master","displayName":"itsNatTan/ip[master]","outputFolderName":"itsNatTan_ip_master"},{"location":{"location":"https://github.com/AustinHuang1203/ip.git","repoName":"ip","organization":"AustinHuang1203","domainName":"github"},"branch":"master","displayName":"AustinHuang1203/ip[master]","outputFolderName":"AustinHuang1203_ip_master"},{"location":{"location":"https://github.com/WangCheng0116/ip.git","repoName":"ip","organization":"WangCheng0116","domainName":"github"},"branch":"master","displayName":"WangCheng0116/ip[master]","outputFolderName":"WangCheng0116_ip_master"},{"location":{"location":"https://github.com/Tim-Siu/ip.git","repoName":"ip","organization":"Tim-Siu","domainName":"github"},"branch":"master","displayName":"Tim-Siu/ip[master]","outputFolderName":"Tim-Siu_ip_master"},{"location":{"location":"https://github.com/newway1814/ip.git","repoName":"ip","organization":"newway1814","domainName":"github"},"branch":"master","displayName":"newway1814/ip[master]","outputFolderName":"newway1814_ip_master"},{"location":{"location":"https://github.com/li-rongzhi/ip.git","repoName":"ip","organization":"li-rongzhi","domainName":"github"},"branch":"master","displayName":"li-rongzhi/ip[master]","outputFolderName":"li-rongzhi_ip_master"},{"location":{"location":"https://github.com/adhigop13/ip.git","repoName":"ip","organization":"adhigop13","domainName":"github"},"branch":"master","displayName":"adhigop13/ip[master]","outputFolderName":"adhigop13_ip_master"},{"location":{"location":"https://github.com/MadLamprey/ip.git","repoName":"ip","organization":"MadLamprey","domainName":"github"},"branch":"master","displayName":"MadLamprey/ip[master]","outputFolderName":"MadLamprey_ip_master"}],"errorSet":[],"sinceDate":"2023-08-18","untilDate":"2023-09-26","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}}} +{"repoSenseVersion":"075d34d8f5","reportGeneratedTime":"Wed Sep 27 09:13:28 2023 UTC+08:00","reportGenerationTime":" 2 minute(s) 20.58 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2103 iP Code Dashboard","repos":[{"location":{"location":"https://github.com/remuslum/ip.git","repoName":"ip","organization":"remuslum","domainName":"github"},"branch":"master","displayName":"remuslum/ip[master]","outputFolderName":"remuslum_ip_master"},{"location":{"location":"https://github.com/elhy1999/ip.git","repoName":"ip","organization":"elhy1999","domainName":"github"},"branch":"master","displayName":"elhy1999/ip[master]","outputFolderName":"elhy1999_ip_master"},{"location":{"location":"https://github.com/XihuaZ/ip.git","repoName":"ip","organization":"XihuaZ","domainName":"github"},"branch":"master","displayName":"XihuaZ/ip[master]","outputFolderName":"XihuaZ_ip_master"},{"location":{"location":"https://github.com/bwangpj/ip.git","repoName":"ip","organization":"bwangpj","domainName":"github"},"branch":"master","displayName":"bwangpj/ip[master]","outputFolderName":"bwangpj_ip_master"},{"location":{"location":"https://github.com/shuenj/ip.git","repoName":"ip","organization":"shuenj","domainName":"github"},"branch":"master","displayName":"shuenj/ip[master]","outputFolderName":"shuenj_ip_master"},{"location":{"location":"https://github.com/SungMatt/ip.git","repoName":"ip","organization":"SungMatt","domainName":"github"},"branch":"master","displayName":"SungMatt/ip[master]","outputFolderName":"SungMatt_ip_master"},{"location":{"location":"https://github.com/junhonglow/ip.git","repoName":"ip","organization":"junhonglow","domainName":"github"},"branch":"master","displayName":"junhonglow/ip[master]","outputFolderName":"junhonglow_ip_master"},{"location":{"location":"https://github.com/xavierpok/ip.git","repoName":"ip","organization":"xavierpok","domainName":"github"},"branch":"master","displayName":"xavierpok/ip[master]","outputFolderName":"xavierpok_ip_master"},{"location":{"location":"https://github.com/marcellaantania/ip.git","repoName":"ip","organization":"marcellaantania","domainName":"github"},"branch":"master","displayName":"marcellaantania/ip[master]","outputFolderName":"marcellaantania_ip_master"},{"location":{"location":"https://github.com/starrylight99/ip.git","repoName":"ip","organization":"starrylight99","domainName":"github"},"branch":"master","displayName":"starrylight99/ip[master]","outputFolderName":"starrylight99_ip_master"},{"location":{"location":"https://github.com/leezhanpeng/ip.git","repoName":"ip","organization":"leezhanpeng","domainName":"github"},"branch":"master","displayName":"leezhanpeng/ip[master]","outputFolderName":"leezhanpeng_ip_master"},{"location":{"location":"https://github.com/sheryew/ip.git","repoName":"ip","organization":"sheryew","domainName":"github"},"branch":"master","displayName":"sheryew/ip[master]","outputFolderName":"sheryew_ip_master"},{"location":{"location":"https://github.com/lihongguang00/ip.git","repoName":"ip","organization":"lihongguang00","domainName":"github"},"branch":"master","displayName":"lihongguang00/ip[master]","outputFolderName":"lihongguang00_ip_master"},{"location":{"location":"https://github.com/nicrandomlee/ip.git","repoName":"ip","organization":"nicrandomlee","domainName":"github"},"branch":"master","displayName":"nicrandomlee/ip[master]","outputFolderName":"nicrandomlee_ip_master"},{"location":{"location":"https://github.com/LuahJunYang/ip.git","repoName":"ip","organization":"LuahJunYang","domainName":"github"},"branch":"master","displayName":"LuahJunYang/ip[master]","outputFolderName":"LuahJunYang_ip_master"},{"location":{"location":"https://github.com/s-peiran/ip.git","repoName":"ip","organization":"s-peiran","domainName":"github"},"branch":"master","displayName":"s-peiran/ip[master]","outputFolderName":"s-peiran_ip_master"},{"location":{"location":"https://github.com/aarontxz/ip.git","repoName":"ip","organization":"aarontxz","domainName":"github"},"branch":"master","displayName":"aarontxz/ip[master]","outputFolderName":"aarontxz_ip_master"},{"location":{"location":"https://github.com/chiayunrong/ip.git","repoName":"ip","organization":"chiayunrong","domainName":"github"},"branch":"master","displayName":"chiayunrong/ip[master]","outputFolderName":"chiayunrong_ip_master"},{"location":{"location":"https://github.com/nixonwidjaja/ip.git","repoName":"ip","organization":"nixonwidjaja","domainName":"github"},"branch":"master","displayName":"nixonwidjaja/ip[master]","outputFolderName":"nixonwidjaja_ip_master"},{"location":{"location":"https://github.com/imkwokyong/ip.git","repoName":"ip","organization":"imkwokyong","domainName":"github"},"branch":"master","displayName":"imkwokyong/ip[master]","outputFolderName":"imkwokyong_ip_master"},{"location":{"location":"https://github.com/mamayuan/ip.git","repoName":"ip","organization":"mamayuan","domainName":"github"},"branch":"master","displayName":"mamayuan/ip[master]","outputFolderName":"mamayuan_ip_master"},{"location":{"location":"https://github.com/geoffong11/ip.git","repoName":"ip","organization":"geoffong11","domainName":"github"},"branch":"master","displayName":"geoffong11/ip[master]","outputFolderName":"geoffong11_ip_master"},{"location":{"location":"https://github.com/vivienherq/ip.git","repoName":"ip","organization":"vivienherq","domainName":"github"},"branch":"master","displayName":"vivienherq/ip[master]","outputFolderName":"vivienherq_ip_master"},{"location":{"location":"https://github.com/johnnythesnake12/ip.git","repoName":"ip","organization":"johnnythesnake12","domainName":"github"},"branch":"master","displayName":"johnnythesnake12/ip[master]","outputFolderName":"johnnythesnake12_ip_master"},{"location":{"location":"https://github.com/Cloud7050/ip.git","repoName":"ip","organization":"Cloud7050","domainName":"github"},"branch":"master","displayName":"Cloud7050/ip[master]","outputFolderName":"Cloud7050_ip_master"},{"location":{"location":"https://github.com/jonyeokj/ip.git","repoName":"ip","organization":"jonyeokj","domainName":"github"},"branch":"master","displayName":"jonyeokj/ip[master]","outputFolderName":"jonyeokj_ip_master"},{"location":{"location":"https://github.com/lipwei1808/ip.git","repoName":"ip","organization":"lipwei1808","domainName":"github"},"branch":"master","displayName":"lipwei1808/ip[master]","outputFolderName":"lipwei1808_ip_master"},{"location":{"location":"https://github.com/zhanyang01/ip.git","repoName":"ip","organization":"zhanyang01","domainName":"github"},"branch":"master","displayName":"zhanyang01/ip[master]","outputFolderName":"zhanyang01_ip_master"},{"location":{"location":"https://github.com/EricXiong420/ip.git","repoName":"ip","organization":"EricXiong420","domainName":"github"},"branch":"master","displayName":"EricXiong420/ip[master]","outputFolderName":"EricXiong420_ip_master"},{"location":{"location":"https://github.com/sp4ce-cowboy/ip.git","repoName":"ip","organization":"sp4ce-cowboy","domainName":"github"},"branch":"master","displayName":"sp4ce-cowboy/ip[master]","outputFolderName":"sp4ce-cowboy_ip_master"},{"location":{"location":"https://github.com/ktzy0305/ip.git","repoName":"ip","organization":"ktzy0305","domainName":"github"},"branch":"master","displayName":"ktzy0305/ip[master]","outputFolderName":"ktzy0305_ip_master"},{"location":{"location":"https://github.com/dom-buri/ip.git","repoName":"ip","organization":"dom-buri","domainName":"github"},"branch":"master","displayName":"dom-buri/ip[master]","outputFolderName":"dom-buri_ip_master"},{"location":{"location":"https://github.com/rayshawntan/ip.git","repoName":"ip","organization":"rayshawntan","domainName":"github"},"branch":"master","displayName":"rayshawntan/ip[master]","outputFolderName":"rayshawntan_ip_master"},{"location":{"location":"https://github.com/Seonlo99/ip.git","repoName":"ip","organization":"Seonlo99","domainName":"github"},"branch":"master","displayName":"Seonlo99/ip[master]","outputFolderName":"Seonlo99_ip_master"},{"location":{"location":"https://github.com/woojiahao/ip.git","repoName":"ip","organization":"woojiahao","domainName":"github"},"branch":"master","displayName":"woojiahao/ip[master]","outputFolderName":"woojiahao_ip_master"},{"location":{"location":"https://github.com/Angelyxx/ip.git","repoName":"ip","organization":"Angelyxx","domainName":"github"},"branch":"master","displayName":"Angelyxx/ip[master]","outputFolderName":"Angelyxx_ip_master"},{"location":{"location":"https://github.com/jamz903/ip.git","repoName":"ip","organization":"jamz903","domainName":"github"},"branch":"master","displayName":"jamz903/ip[master]","outputFolderName":"jamz903_ip_master"},{"location":{"location":"https://github.com/Fallman2/ip.git","repoName":"ip","organization":"Fallman2","domainName":"github"},"branch":"master","displayName":"Fallman2/ip[master]","outputFolderName":"Fallman2_ip_master"},{"location":{"location":"https://github.com/jacobcuison/ip.git","repoName":"ip","organization":"jacobcuison","domainName":"github"},"branch":"master","displayName":"jacobcuison/ip[master]","outputFolderName":"jacobcuison_ip_master"},{"location":{"location":"https://github.com/kenvynKwek/ip.git","repoName":"ip","organization":"kenvynKwek","domainName":"github"},"branch":"master","displayName":"kenvynKwek/ip[master]","outputFolderName":"kenvynKwek_ip_master"},{"location":{"location":"https://github.com/kokrui/ip.git","repoName":"ip","organization":"kokrui","domainName":"github"},"branch":"master","displayName":"kokrui/ip[master]","outputFolderName":"kokrui_ip_master"},{"location":{"location":"https://github.com/ncmathan/ip.git","repoName":"ip","organization":"ncmathan","domainName":"github"},"branch":"master","displayName":"ncmathan/ip[master]","outputFolderName":"ncmathan_ip_master"},{"location":{"location":"https://github.com/xCOLOURx/ip.git","repoName":"ip","organization":"xCOLOURx","domainName":"github"},"branch":"master","displayName":"xCOLOURx/ip[master]","outputFolderName":"xCOLOURx_ip_master"},{"location":{"location":"https://github.com/zhyuhan/ip.git","repoName":"ip","organization":"zhyuhan","domainName":"github"},"branch":"master","displayName":"zhyuhan/ip[master]","outputFolderName":"zhyuhan_ip_master"},{"location":{"location":"https://github.com/chuababyy/ip.git","repoName":"ip","organization":"chuababyy","domainName":"github"},"branch":"master","displayName":"chuababyy/ip[master]","outputFolderName":"chuababyy_ip_master"},{"location":{"location":"https://github.com/rocketninja7/ip.git","repoName":"ip","organization":"rocketninja7","domainName":"github"},"branch":"master","displayName":"rocketninja7/ip[master]","outputFolderName":"rocketninja7_ip_master"},{"location":{"location":"https://github.com/marquestye/ip.git","repoName":"ip","organization":"marquestye","domainName":"github"},"branch":"master","displayName":"marquestye/ip[master]","outputFolderName":"marquestye_ip_master"},{"location":{"location":"https://github.com/ruiyangzh/ip.git","repoName":"ip","organization":"ruiyangzh","domainName":"github"},"branch":"master","displayName":"ruiyangzh/ip[master]","outputFolderName":"ruiyangzh_ip_master"},{"location":{"location":"https://github.com/derekjxtan/ip.git","repoName":"ip","organization":"derekjxtan","domainName":"github"},"branch":"master","displayName":"derekjxtan/ip[master]","outputFolderName":"derekjxtan_ip_master"},{"location":{"location":"https://github.com/mounilsankar/ip.git","repoName":"ip","organization":"mounilsankar","domainName":"github"},"branch":"master","displayName":"mounilsankar/ip[master]","outputFolderName":"mounilsankar_ip_master"},{"location":{"location":"https://github.com/wj331/ip.git","repoName":"ip","organization":"wj331","domainName":"github"},"branch":"master","displayName":"wj331/ip[master]","outputFolderName":"wj331_ip_master"},{"location":{"location":"https://github.com/JasonLCY-Temp/ip.git","repoName":"ip","organization":"JasonLCY-Temp","domainName":"github"},"branch":"master","displayName":"JasonLCY-Temp/ip[master]","outputFolderName":"JasonLCY-Temp_ip_master"},{"location":{"location":"https://github.com/lawruixi/ip.git","repoName":"ip","organization":"lawruixi","domainName":"github"},"branch":"master","displayName":"lawruixi/ip[master]","outputFolderName":"lawruixi_ip_master"},{"location":{"location":"https://github.com/wxwern/ip.git","repoName":"ip","organization":"wxwern","domainName":"github"},"branch":"master","displayName":"wxwern/ip[master]","outputFolderName":"wxwern_ip_master"},{"location":{"location":"https://github.com/zekone/ip.git","repoName":"ip","organization":"zekone","domainName":"github"},"branch":"master","displayName":"zekone/ip[master]","outputFolderName":"zekone_ip_master"},{"location":{"location":"https://github.com/wamps-jp/ip.git","repoName":"ip","organization":"wamps-jp","domainName":"github"},"branch":"master","displayName":"wamps-jp/ip[master]","outputFolderName":"wamps-jp_ip_master"},{"location":{"location":"https://github.com/saltedfishxx/ip.git","repoName":"ip","organization":"saltedfishxx","domainName":"github"},"branch":"master","displayName":"saltedfishxx/ip[master]","outputFolderName":"saltedfishxx_ip_master"},{"location":{"location":"https://github.com/winson8222/ip.git","repoName":"ip","organization":"winson8222","domainName":"github"},"branch":"master","displayName":"winson8222/ip[master]","outputFolderName":"winson8222_ip_master"},{"location":{"location":"https://github.com/brandon-nam/ip.git","repoName":"ip","organization":"brandon-nam","domainName":"github"},"branch":"master","displayName":"brandon-nam/ip[master]","outputFolderName":"brandon-nam_ip_master"},{"location":{"location":"https://github.com/p-xp/ip.git","repoName":"ip","organization":"p-xp","domainName":"github"},"branch":"master","displayName":"p-xp/ip[master]","outputFolderName":"p-xp_ip_master"},{"location":{"location":"https://github.com/WeeMingQing/ip.git","repoName":"ip","organization":"WeeMingQing","domainName":"github"},"branch":"master","displayName":"WeeMingQing/ip[master]","outputFolderName":"WeeMingQing_ip_master"},{"location":{"location":"https://github.com/ScarletBlanks/ip.git","repoName":"ip","organization":"ScarletBlanks","domainName":"github"},"branch":"master","displayName":"ScarletBlanks/ip[master]","outputFolderName":"ScarletBlanks_ip_master"},{"location":{"location":"https://github.com/seraphimstreets/ip.git","repoName":"ip","organization":"seraphimstreets","domainName":"github"},"branch":"master","displayName":"seraphimstreets/ip[master]","outputFolderName":"seraphimstreets_ip_master"},{"location":{"location":"https://github.com/devanshubisht/ip.git","repoName":"ip","organization":"devanshubisht","domainName":"github"},"branch":"master","displayName":"devanshubisht/ip[master]","outputFolderName":"devanshubisht_ip_master"},{"location":{"location":"https://github.com/Zjinnnn/ip.git","repoName":"ip","organization":"Zjinnnn","domainName":"github"},"branch":"master","displayName":"Zjinnnn/ip[master]","outputFolderName":"Zjinnnn_ip_master"},{"location":{"location":"https://github.com/brendanneojw/ip.git","repoName":"ip","organization":"brendanneojw","domainName":"github"},"branch":"master","displayName":"brendanneojw/ip[master]","outputFolderName":"brendanneojw_ip_master"},{"location":{"location":"https://github.com/aexolate/ip.git","repoName":"ip","organization":"aexolate","domainName":"github"},"branch":"master","displayName":"aexolate/ip[master]","outputFolderName":"aexolate_ip_master"},{"location":{"location":"https://github.com/techjay-c/ip.git","repoName":"ip","organization":"techjay-c","domainName":"github"},"branch":"master","displayName":"techjay-c/ip[master]","outputFolderName":"techjay-c_ip_master"},{"location":{"location":"https://github.com/SynapseProgramming/ip.git","repoName":"ip","organization":"SynapseProgramming","domainName":"github"},"branch":"master","displayName":"SynapseProgramming/ip[master]","outputFolderName":"SynapseProgramming_ip_master"},{"location":{"location":"https://github.com/TyrusLye/ip.git","repoName":"ip","organization":"TyrusLye","domainName":"github"},"branch":"master","displayName":"TyrusLye/ip[master]","outputFolderName":"TyrusLye_ip_master"},{"location":{"location":"https://github.com/RB9823/ip.git","repoName":"ip","organization":"RB9823","domainName":"github"},"branch":"master","displayName":"RB9823/ip[master]","outputFolderName":"RB9823_ip_master"},{"location":{"location":"https://github.com/jean-cq/ip.git","repoName":"ip","organization":"jean-cq","domainName":"github"},"branch":"master","displayName":"jean-cq/ip[master]","outputFolderName":"jean-cq_ip_master"},{"location":{"location":"https://github.com/Bearypop/ip.git","repoName":"ip","organization":"Bearypop","domainName":"github"},"branch":"master","displayName":"Bearypop/ip[master]","outputFolderName":"Bearypop_ip_master"},{"location":{"location":"https://github.com/andytoh1/ip.git","repoName":"ip","organization":"andytoh1","domainName":"github"},"branch":"master","displayName":"andytoh1/ip[master]","outputFolderName":"andytoh1_ip_master"},{"location":{"location":"https://github.com/siqirua/ip.git","repoName":"ip","organization":"siqirua","domainName":"github"},"branch":"master","displayName":"siqirua/ip[master]","outputFolderName":"siqirua_ip_master"},{"location":{"location":"https://github.com/amosting/ip.git","repoName":"ip","organization":"amosting","domainName":"github"},"branch":"master","displayName":"amosting/ip[master]","outputFolderName":"amosting_ip_master"},{"location":{"location":"https://github.com/JizhuoChen/ip.git","repoName":"ip","organization":"JizhuoChen","domainName":"github"},"branch":"master","displayName":"JizhuoChen/ip[master]","outputFolderName":"JizhuoChen_ip_master"},{"location":{"location":"https://github.com/Tang-Moyan/ip.git","repoName":"ip","organization":"Tang-Moyan","domainName":"github"},"branch":"master","displayName":"Tang-Moyan/ip[master]","outputFolderName":"Tang-Moyan_ip_master"},{"location":{"location":"https://github.com/aliciamichellew/ip.git","repoName":"ip","organization":"aliciamichellew","domainName":"github"},"branch":"master","displayName":"aliciamichellew/ip[master]","outputFolderName":"aliciamichellew_ip_master"},{"location":{"location":"https://github.com/KamiliArsyad/ip.git","repoName":"ip","organization":"KamiliArsyad","domainName":"github"},"branch":"master","displayName":"KamiliArsyad/ip[master]","outputFolderName":"KamiliArsyad_ip_master"},{"location":{"location":"https://github.com/dishenggg/ip.git","repoName":"ip","organization":"dishenggg","domainName":"github"},"branch":"master","displayName":"dishenggg/ip[master]","outputFolderName":"dishenggg_ip_master"},{"location":{"location":"https://github.com/Nixx162/ip.git","repoName":"ip","organization":"Nixx162","domainName":"github"},"branch":"master","displayName":"Nixx162/ip[master]","outputFolderName":"Nixx162_ip_master"},{"location":{"location":"https://github.com/Leb14/ip.git","repoName":"ip","organization":"Leb14","domainName":"github"},"branch":"master","displayName":"Leb14/ip[master]","outputFolderName":"Leb14_ip_master"},{"location":{"location":"https://github.com/Heran9/ip.git","repoName":"ip","organization":"Heran9","domainName":"github"},"branch":"master","displayName":"Heran9/ip[master]","outputFolderName":"Heran9_ip_master"},{"location":{"location":"https://github.com/FerdiHS/ip.git","repoName":"ip","organization":"FerdiHS","domainName":"github"},"branch":"master","displayName":"FerdiHS/ip[master]","outputFolderName":"FerdiHS_ip_master"},{"location":{"location":"https://github.com/StevenLiudw/ip.git","repoName":"ip","organization":"StevenLiudw","domainName":"github"},"branch":"master","displayName":"StevenLiudw/ip[master]","outputFolderName":"StevenLiudw_ip_master"},{"location":{"location":"https://github.com/InfiBeyond/ip.git","repoName":"ip","organization":"InfiBeyond","domainName":"github"},"branch":"master","displayName":"InfiBeyond/ip[master]","outputFolderName":"InfiBeyond_ip_master"},{"location":{"location":"https://github.com/s0ngyang/ip.git","repoName":"ip","organization":"s0ngyang","domainName":"github"},"branch":"master","displayName":"s0ngyang/ip[master]","outputFolderName":"s0ngyang_ip_master"},{"location":{"location":"https://github.com/ivyy-poison/ip.git","repoName":"ip","organization":"ivyy-poison","domainName":"github"},"branch":"master","displayName":"ivyy-poison/ip[master]","outputFolderName":"ivyy-poison_ip_master"},{"location":{"location":"https://github.com/yytan25/ip.git","repoName":"ip","organization":"yytan25","domainName":"github"},"branch":"master","displayName":"yytan25/ip[master]","outputFolderName":"yytan25_ip_master"},{"location":{"location":"https://github.com/tjch-o/ip.git","repoName":"ip","organization":"tjch-o","domainName":"github"},"branch":"master","displayName":"tjch-o/ip[master]","outputFolderName":"tjch-o_ip_master"},{"location":{"location":"https://github.com/jedkohjk/ip.git","repoName":"ip","organization":"jedkohjk","domainName":"github"},"branch":"master","displayName":"jedkohjk/ip[master]","outputFolderName":"jedkohjk_ip_master"},{"location":{"location":"https://github.com/raynertjx/ip.git","repoName":"ip","organization":"raynertjx","domainName":"github"},"branch":"master","displayName":"raynertjx/ip[master]","outputFolderName":"raynertjx_ip_master"},{"location":{"location":"https://github.com/cmHuang777/ip.git","repoName":"ip","organization":"cmHuang777","domainName":"github"},"branch":"master","displayName":"cmHuang777/ip[master]","outputFolderName":"cmHuang777_ip_master"},{"location":{"location":"https://github.com/wui-hong/ip.git","repoName":"ip","organization":"wui-hong","domainName":"github"},"branch":"master","displayName":"wui-hong/ip[master]","outputFolderName":"wui-hong_ip_master"},{"location":{"location":"https://github.com/PohSayKeong/ip.git","repoName":"ip","organization":"PohSayKeong","domainName":"github"},"branch":"master","displayName":"PohSayKeong/ip[master]","outputFolderName":"PohSayKeong_ip_master"},{"location":{"location":"https://github.com/lsyurea/ip.git","repoName":"ip","organization":"lsyurea","domainName":"github"},"branch":"master","displayName":"lsyurea/ip[master]","outputFolderName":"lsyurea_ip_master"},{"location":{"location":"https://github.com/ong-wei-hong/ip.git","repoName":"ip","organization":"ong-wei-hong","domainName":"github"},"branch":"master","displayName":"ong-wei-hong/ip[master]","outputFolderName":"ong-wei-hong_ip_master"},{"location":{"location":"https://github.com/asdfghjkxd/ip.git","repoName":"ip","organization":"asdfghjkxd","domainName":"github"},"branch":"master","displayName":"asdfghjkxd/ip[master]","outputFolderName":"asdfghjkxd_ip_master"},{"location":{"location":"https://github.com/GSgiansen/ip.git","repoName":"ip","organization":"GSgiansen","domainName":"github"},"branch":"master","displayName":"GSgiansen/ip[master]","outputFolderName":"GSgiansen_ip_master"},{"location":{"location":"https://github.com/syamfarh/ip.git","repoName":"ip","organization":"syamfarh","domainName":"github"},"branch":"master","displayName":"syamfarh/ip[master]","outputFolderName":"syamfarh_ip_master"},{"location":{"location":"https://github.com/PetrichorPrecipice/ip.git","repoName":"ip","organization":"PetrichorPrecipice","domainName":"github"},"branch":"master","displayName":"PetrichorPrecipice/ip[master]","outputFolderName":"PetrichorPrecipice_ip_master"},{"location":{"location":"https://github.com/ngeeyonglim/ip.git","repoName":"ip","organization":"ngeeyonglim","domainName":"github"},"branch":"master","displayName":"ngeeyonglim/ip[master]","outputFolderName":"ngeeyonglim_ip_master"},{"location":{"location":"https://github.com/ivanleekk/ip.git","repoName":"ip","organization":"ivanleekk","domainName":"github"},"branch":"master","displayName":"ivanleekk/ip[master]","outputFolderName":"ivanleekk_ip_master"},{"location":{"location":"https://github.com/ryanozx/ip.git","repoName":"ip","organization":"ryanozx","domainName":"github"},"branch":"master","displayName":"ryanozx/ip[master]","outputFolderName":"ryanozx_ip_master"},{"location":{"location":"https://github.com/Jweewee/ip.git","repoName":"ip","organization":"Jweewee","domainName":"github"},"branch":"master","displayName":"Jweewee/ip[master]","outputFolderName":"Jweewee_ip_master"},{"location":{"location":"https://github.com/supermii2/ip.git","repoName":"ip","organization":"supermii2","domainName":"github"},"branch":"master","displayName":"supermii2/ip[master]","outputFolderName":"supermii2_ip_master"},{"location":{"location":"https://github.com/bkjwjason/ip.git","repoName":"ip","organization":"bkjwjason","domainName":"github"},"branch":"master","displayName":"bkjwjason/ip[master]","outputFolderName":"bkjwjason_ip_master"},{"location":{"location":"https://github.com/Sasmik23/ip.git","repoName":"ip","organization":"Sasmik23","domainName":"github"},"branch":"master","displayName":"Sasmik23/ip[master]","outputFolderName":"Sasmik23_ip_master"},{"location":{"location":"https://github.com/nathanielcalimag/ip.git","repoName":"ip","organization":"nathanielcalimag","domainName":"github"},"branch":"master","displayName":"nathanielcalimag/ip[master]","outputFolderName":"nathanielcalimag_ip_master"},{"location":{"location":"https://github.com/AlagappanRa/ip.git","repoName":"ip","organization":"AlagappanRa","domainName":"github"},"branch":"master","displayName":"AlagappanRa/ip[master]","outputFolderName":"AlagappanRa_ip_master"},{"location":{"location":"https://github.com/McNaBry/ip.git","repoName":"ip","organization":"McNaBry","domainName":"github"},"branch":"master","displayName":"McNaBry/ip[master]","outputFolderName":"McNaBry_ip_master"},{"location":{"location":"https://github.com/phiphi-tan/ip.git","repoName":"ip","organization":"phiphi-tan","domainName":"github"},"branch":"master","displayName":"phiphi-tan/ip[master]","outputFolderName":"phiphi-tan_ip_master"},{"location":{"location":"https://github.com/LicongHuang/ip.git","repoName":"ip","organization":"LicongHuang","domainName":"github"},"branch":"master","displayName":"LicongHuang/ip[master]","outputFolderName":"LicongHuang_ip_master"},{"location":{"location":"https://github.com/tanshiyu1999/ip.git","repoName":"ip","organization":"tanshiyu1999","domainName":"github"},"branch":"master","displayName":"tanshiyu1999/ip[master]","outputFolderName":"tanshiyu1999_ip_master"},{"location":{"location":"https://github.com/raydenlim/ip.git","repoName":"ip","organization":"raydenlim","domainName":"github"},"branch":"master","displayName":"raydenlim/ip[master]","outputFolderName":"raydenlim_ip_master"},{"location":{"location":"https://github.com/jianyangg/ip.git","repoName":"ip","organization":"jianyangg","domainName":"github"},"branch":"master","displayName":"jianyangg/ip[master]","outputFolderName":"jianyangg_ip_master"},{"location":{"location":"https://github.com/rionshocker/ip.git","repoName":"ip","organization":"rionshocker","domainName":"github"},"branch":"master","displayName":"rionshocker/ip[master]","outputFolderName":"rionshocker_ip_master"},{"location":{"location":"https://github.com/conradsoon/ip.git","repoName":"ip","organization":"conradsoon","domainName":"github"},"branch":"master","displayName":"conradsoon/ip[master]","outputFolderName":"conradsoon_ip_master"},{"location":{"location":"https://github.com/Jonyxzx/ip.git","repoName":"ip","organization":"Jonyxzx","domainName":"github"},"branch":"master","displayName":"Jonyxzx/ip[master]","outputFolderName":"Jonyxzx_ip_master"},{"location":{"location":"https://github.com/euchangxian/ip.git","repoName":"ip","organization":"euchangxian","domainName":"github"},"branch":"master","displayName":"euchangxian/ip[master]","outputFolderName":"euchangxian_ip_master"},{"location":{"location":"https://github.com/teoks0199/ip.git","repoName":"ip","organization":"teoks0199","domainName":"github"},"branch":"master","displayName":"teoks0199/ip[master]","outputFolderName":"teoks0199_ip_master"},{"location":{"location":"https://github.com/HollaG/ip.git","repoName":"ip","organization":"HollaG","domainName":"github"},"branch":"master","displayName":"HollaG/ip[master]","outputFolderName":"HollaG_ip_master"},{"location":{"location":"https://github.com/leezhengjing/ip.git","repoName":"ip","organization":"leezhengjing","domainName":"github"},"branch":"master","displayName":"leezhengjing/ip[master]","outputFolderName":"leezhengjing_ip_master"},{"location":{"location":"https://github.com/timleow/ip.git","repoName":"ip","organization":"timleow","domainName":"github"},"branch":"master","displayName":"timleow/ip[master]","outputFolderName":"timleow_ip_master"},{"location":{"location":"https://github.com/jacksonyuan256/ip.git","repoName":"ip","organization":"jacksonyuan256","domainName":"github"},"branch":"master","displayName":"jacksonyuan256/ip[master]","outputFolderName":"jacksonyuan256_ip_master"},{"location":{"location":"https://github.com/victorlaiyeeteng/ip.git","repoName":"ip","organization":"victorlaiyeeteng","domainName":"github"},"branch":"master","displayName":"victorlaiyeeteng/ip[master]","outputFolderName":"victorlaiyeeteng_ip_master"},{"location":{"location":"https://github.com/prawnzyy/ip.git","repoName":"ip","organization":"prawnzyy","domainName":"github"},"branch":"master","displayName":"prawnzyy/ip[master]","outputFolderName":"prawnzyy_ip_master"},{"location":{"location":"https://github.com/ryanongwx/ip.git","repoName":"ip","organization":"ryanongwx","domainName":"github"},"branch":"master","displayName":"ryanongwx/ip[master]","outputFolderName":"ryanongwx_ip_master"},{"location":{"location":"https://github.com/tohpinren/ip.git","repoName":"ip","organization":"tohpinren","domainName":"github"},"branch":"master","displayName":"tohpinren/ip[master]","outputFolderName":"tohpinren_ip_master"},{"location":{"location":"https://github.com/DeltonCheng/ip.git","repoName":"ip","organization":"DeltonCheng","domainName":"github"},"branch":"master","displayName":"DeltonCheng/ip[master]","outputFolderName":"DeltonCheng_ip_master"},{"location":{"location":"https://github.com/leontan2/ip.git","repoName":"ip","organization":"leontan2","domainName":"github"},"branch":"master","displayName":"leontan2/ip[master]","outputFolderName":"leontan2_ip_master"},{"location":{"location":"https://github.com/alvinlim277/ip.git","repoName":"ip","organization":"alvinlim277","domainName":"github"},"branch":"master","displayName":"alvinlim277/ip[master]","outputFolderName":"alvinlim277_ip_master"},{"location":{"location":"https://github.com/lshaoqin/ip.git","repoName":"ip","organization":"lshaoqin","domainName":"github"},"branch":"master","displayName":"lshaoqin/ip[master]","outputFolderName":"lshaoqin_ip_master"},{"location":{"location":"https://github.com/ChongWeiJie29/ip.git","repoName":"ip","organization":"ChongWeiJie29","domainName":"github"},"branch":"master","displayName":"ChongWeiJie29/ip[master]","outputFolderName":"ChongWeiJie29_ip_master"},{"location":{"location":"https://github.com/zhonghan721/ip.git","repoName":"ip","organization":"zhonghan721","domainName":"github"},"branch":"master","displayName":"zhonghan721/ip[master]","outputFolderName":"zhonghan721_ip_master"},{"location":{"location":"https://github.com/teozhengyang/ip.git","repoName":"ip","organization":"teozhengyang","domainName":"github"},"branch":"master","displayName":"teozhengyang/ip[master]","outputFolderName":"teozhengyang_ip_master"},{"location":{"location":"https://github.com/garylow2001/ip.git","repoName":"ip","organization":"garylow2001","domainName":"github"},"branch":"master","displayName":"garylow2001/ip[master]","outputFolderName":"garylow2001_ip_master"},{"location":{"location":"https://github.com/Cleon2/ip.git","repoName":"ip","organization":"Cleon2","domainName":"github"},"branch":"master","displayName":"Cleon2/ip[master]","outputFolderName":"Cleon2_ip_master"},{"location":{"location":"https://github.com/limzhenwy/ip.git","repoName":"ip","organization":"limzhenwy","domainName":"github"},"branch":"master","displayName":"limzhenwy/ip[master]","outputFolderName":"limzhenwy_ip_master"},{"location":{"location":"https://github.com/ItsTYtan/ip.git","repoName":"ip","organization":"ItsTYtan","domainName":"github"},"branch":"master","displayName":"ItsTYtan/ip[master]","outputFolderName":"ItsTYtan_ip_master"},{"location":{"location":"https://github.com/owenyeo/ip.git","repoName":"ip","organization":"owenyeo","domainName":"github"},"branch":"master","displayName":"owenyeo/ip[master]","outputFolderName":"owenyeo_ip_master"},{"location":{"location":"https://github.com/jonasongg/ip.git","repoName":"ip","organization":"jonasongg","domainName":"github"},"branch":"master","displayName":"jonasongg/ip[master]","outputFolderName":"jonasongg_ip_master"},{"location":{"location":"https://github.com/Ruizhi2001/ip.git","repoName":"ip","organization":"Ruizhi2001","domainName":"github"},"branch":"master","displayName":"Ruizhi2001/ip[master]","outputFolderName":"Ruizhi2001_ip_master"},{"location":{"location":"https://github.com/Dioclei/ip.git","repoName":"ip","organization":"Dioclei","domainName":"github"},"branch":"master","displayName":"Dioclei/ip[master]","outputFolderName":"Dioclei_ip_master"},{"location":{"location":"https://github.com/bobscodedump/ip.git","repoName":"ip","organization":"bobscodedump","domainName":"github"},"branch":"master","displayName":"bobscodedump/ip[master]","outputFolderName":"bobscodedump_ip_master"},{"location":{"location":"https://github.com/andrefoo/ip.git","repoName":"ip","organization":"andrefoo","domainName":"github"},"branch":"master","displayName":"andrefoo/ip[master]","outputFolderName":"andrefoo_ip_master"},{"location":{"location":"https://github.com/Bombbird2001/ip.git","repoName":"ip","organization":"Bombbird2001","domainName":"github"},"branch":"master","displayName":"Bombbird2001/ip[master]","outputFolderName":"Bombbird2001_ip_master"},{"location":{"location":"https://github.com/chewjh1234/ip.git","repoName":"ip","organization":"chewjh1234","domainName":"github"},"branch":"master","displayName":"chewjh1234/ip[master]","outputFolderName":"chewjh1234_ip_master"},{"location":{"location":"https://github.com/dloh2236/ip.git","repoName":"ip","organization":"dloh2236","domainName":"github"},"branch":"master","displayName":"dloh2236/ip[master]","outputFolderName":"dloh2236_ip_master"},{"location":{"location":"https://github.com/chew01/ip.git","repoName":"ip","organization":"chew01","domainName":"github"},"branch":"master","displayName":"chew01/ip[master]","outputFolderName":"chew01_ip_master"},{"location":{"location":"https://github.com/trgao/ip.git","repoName":"ip","organization":"trgao","domainName":"github"},"branch":"master","displayName":"trgao/ip[master]","outputFolderName":"trgao_ip_master"},{"location":{"location":"https://github.com/richiehx/ip.git","repoName":"ip","organization":"richiehx","domainName":"github"},"branch":"master","displayName":"richiehx/ip[master]","outputFolderName":"richiehx_ip_master"},{"location":{"location":"https://github.com/LoMaply/ip.git","repoName":"ip","organization":"LoMaply","domainName":"github"},"branch":"master","displayName":"LoMaply/ip[master]","outputFolderName":"LoMaply_ip_master"},{"location":{"location":"https://github.com/Originalidk/ip.git","repoName":"ip","organization":"Originalidk","domainName":"github"},"branch":"master","displayName":"Originalidk/ip[master]","outputFolderName":"Originalidk_ip_master"},{"location":{"location":"https://github.com/kiatkat/ip.git","repoName":"ip","organization":"kiatkat","domainName":"github"},"branch":"master","displayName":"kiatkat/ip[master]","outputFolderName":"kiatkat_ip_master"},{"location":{"location":"https://github.com/juliusgambe/ip.git","repoName":"ip","organization":"juliusgambe","domainName":"github"},"branch":"master","displayName":"juliusgambe/ip[master]","outputFolderName":"juliusgambe_ip_master"},{"location":{"location":"https://github.com/jiakai-17/ip.git","repoName":"ip","organization":"jiakai-17","domainName":"github"},"branch":"master","displayName":"jiakai-17/ip[master]","outputFolderName":"jiakai-17_ip_master"},{"location":{"location":"https://github.com/nikele2001/ip.git","repoName":"ip","organization":"nikele2001","domainName":"github"},"branch":"master","displayName":"nikele2001/ip[master]","outputFolderName":"nikele2001_ip_master"},{"location":{"location":"https://github.com/jylow/ip.git","repoName":"ip","organization":"jylow","domainName":"github"},"branch":"master","displayName":"jylow/ip[master]","outputFolderName":"jylow_ip_master"},{"location":{"location":"https://github.com/jx124/ip.git","repoName":"ip","organization":"jx124","domainName":"github"},"branch":"master","displayName":"jx124/ip[master]","outputFolderName":"jx124_ip_master"},{"location":{"location":"https://github.com/Kb-Tay/ip.git","repoName":"ip","organization":"Kb-Tay","domainName":"github"},"branch":"master","displayName":"Kb-Tay/ip[master]","outputFolderName":"Kb-Tay_ip_master"},{"location":{"location":"https://github.com/jinyuan0425/ip.git","repoName":"ip","organization":"jinyuan0425","domainName":"github"},"branch":"master","displayName":"jinyuan0425/ip[master]","outputFolderName":"jinyuan0425_ip_master"},{"location":{"location":"https://github.com/darrentfy/ip.git","repoName":"ip","organization":"darrentfy","domainName":"github"},"branch":"master","displayName":"darrentfy/ip[master]","outputFolderName":"darrentfy_ip_master"},{"location":{"location":"https://github.com/HEEaZ/ip.git","repoName":"ip","organization":"HEEaZ","domainName":"github"},"branch":"master","displayName":"HEEaZ/ip[master]","outputFolderName":"HEEaZ_ip_master"},{"location":{"location":"https://github.com/ji-just-ji/ip.git","repoName":"ip","organization":"ji-just-ji","domainName":"github"},"branch":"master","displayName":"ji-just-ji/ip[master]","outputFolderName":"ji-just-ji_ip_master"},{"location":{"location":"https://github.com/simbayippy/ip.git","repoName":"ip","organization":"simbayippy","domainName":"github"},"branch":"master","displayName":"simbayippy/ip[master]","outputFolderName":"simbayippy_ip_master"},{"location":{"location":"https://github.com/teozern1/ip.git","repoName":"ip","organization":"teozern1","domainName":"github"},"branch":"master","displayName":"teozern1/ip[master]","outputFolderName":"teozern1_ip_master"},{"location":{"location":"https://github.com/brein62/ip.git","repoName":"ip","organization":"brein62","domainName":"github"},"branch":"master","displayName":"brein62/ip[master]","outputFolderName":"brein62_ip_master"},{"location":{"location":"https://github.com/awhb/ip.git","repoName":"ip","organization":"awhb","domainName":"github"},"branch":"master","displayName":"awhb/ip[master]","outputFolderName":"awhb_ip_master"},{"location":{"location":"https://github.com/Mahidharah/ip.git","repoName":"ip","organization":"Mahidharah","domainName":"github"},"branch":"master","displayName":"Mahidharah/ip[master]","outputFolderName":"Mahidharah_ip_master"},{"location":{"location":"https://github.com/timetraveller-123/ip.git","repoName":"ip","organization":"timetraveller-123","domainName":"github"},"branch":"master","displayName":"timetraveller-123/ip[master]","outputFolderName":"timetraveller-123_ip_master"},{"location":{"location":"https://github.com/ElginTZM/ip.git","repoName":"ip","organization":"ElginTZM","domainName":"github"},"branch":"master","displayName":"ElginTZM/ip[master]","outputFolderName":"ElginTZM_ip_master"},{"location":{"location":"https://github.com/ryamgoh/ip.git","repoName":"ip","organization":"ryamgoh","domainName":"github"},"branch":"master","displayName":"ryamgoh/ip[master]","outputFolderName":"ryamgoh_ip_master"},{"location":{"location":"https://github.com/Blizzeracz/ip.git","repoName":"ip","organization":"Blizzeracz","domainName":"github"},"branch":"master","displayName":"Blizzeracz/ip[master]","outputFolderName":"Blizzeracz_ip_master"},{"location":{"location":"https://github.com/kiwibang/ip.git","repoName":"ip","organization":"kiwibang","domainName":"github"},"branch":"master","displayName":"kiwibang/ip[master]","outputFolderName":"kiwibang_ip_master"},{"location":{"location":"https://github.com/redtailedfox/ip.git","repoName":"ip","organization":"redtailedfox","domainName":"github"},"branch":"master","displayName":"redtailedfox/ip[master]","outputFolderName":"redtailedfox_ip_master"},{"location":{"location":"https://github.com/lamchenghou/ip.git","repoName":"ip","organization":"lamchenghou","domainName":"github"},"branch":"master","displayName":"lamchenghou/ip[master]","outputFolderName":"lamchenghou_ip_master"},{"location":{"location":"https://github.com/gongg21/ip.git","repoName":"ip","organization":"gongg21","domainName":"github"},"branch":"master","displayName":"gongg21/ip[master]","outputFolderName":"gongg21_ip_master"},{"location":{"location":"https://github.com/CJ-Lee01/ip.git","repoName":"ip","organization":"CJ-Lee01","domainName":"github"},"branch":"master","displayName":"CJ-Lee01/ip[master]","outputFolderName":"CJ-Lee01_ip_master"},{"location":{"location":"https://github.com/Sheeepen/ip.git","repoName":"ip","organization":"Sheeepen","domainName":"github"},"branch":"master","displayName":"Sheeepen/ip[master]","outputFolderName":"Sheeepen_ip_master"},{"location":{"location":"https://github.com/AaronJT1/ip.git","repoName":"ip","organization":"AaronJT1","domainName":"github"},"branch":"master","displayName":"AaronJT1/ip[master]","outputFolderName":"AaronJT1_ip_master"},{"location":{"location":"https://github.com/Respirayson/ip.git","repoName":"ip","organization":"Respirayson","domainName":"github"},"branch":"master","displayName":"Respirayson/ip[master]","outputFolderName":"Respirayson_ip_master"},{"location":{"location":"https://github.com/dickongwd/ip.git","repoName":"ip","organization":"dickongwd","domainName":"github"},"branch":"master","displayName":"dickongwd/ip[master]","outputFolderName":"dickongwd_ip_master"},{"location":{"location":"https://github.com/nicholascher/ip.git","repoName":"ip","organization":"nicholascher","domainName":"github"},"branch":"master","displayName":"nicholascher/ip[master]","outputFolderName":"nicholascher_ip_master"},{"location":{"location":"https://github.com/et-irl/ip.git","repoName":"ip","organization":"et-irl","domainName":"github"},"branch":"master","displayName":"et-irl/ip[master]","outputFolderName":"et-irl_ip_master"},{"location":{"location":"https://github.com/aslam341/ip.git","repoName":"ip","organization":"aslam341","domainName":"github"},"branch":"master","displayName":"aslam341/ip[master]","outputFolderName":"aslam341_ip_master"},{"location":{"location":"https://github.com/seantehds/ip.git","repoName":"ip","organization":"seantehds","domainName":"github"},"branch":"master","displayName":"seantehds/ip[master]","outputFolderName":"seantehds_ip_master"},{"location":{"location":"https://github.com/jianrong7/ip.git","repoName":"ip","organization":"jianrong7","domainName":"github"},"branch":"master","displayName":"jianrong7/ip[master]","outputFolderName":"jianrong7_ip_master"},{"location":{"location":"https://github.com/TeeRenJing/ip.git","repoName":"ip","organization":"TeeRenJing","domainName":"github"},"branch":"master","displayName":"TeeRenJing/ip[master]","outputFolderName":"TeeRenJing_ip_master"},{"location":{"location":"https://github.com/RoeReRe/ip.git","repoName":"ip","organization":"RoeReRe","domainName":"github"},"branch":"master","displayName":"RoeReRe/ip[master]","outputFolderName":"RoeReRe_ip_master"},{"location":{"location":"https://github.com/zsh-eng/ip.git","repoName":"ip","organization":"zsh-eng","domainName":"github"},"branch":"master","displayName":"zsh-eng/ip[master]","outputFolderName":"zsh-eng_ip_master"},{"location":{"location":"https://github.com/seanpzk/ip.git","repoName":"ip","organization":"seanpzk","domainName":"github"},"branch":"master","displayName":"seanpzk/ip[master]","outputFolderName":"seanpzk_ip_master"},{"location":{"location":"https://github.com/quzhetao01/ip.git","repoName":"ip","organization":"quzhetao01","domainName":"github"},"branch":"master","displayName":"quzhetao01/ip[master]","outputFolderName":"quzhetao01_ip_master"},{"location":{"location":"https://github.com/joel-foo/ip.git","repoName":"ip","organization":"joel-foo","domainName":"github"},"branch":"master","displayName":"joel-foo/ip[master]","outputFolderName":"joel-foo_ip_master"},{"location":{"location":"https://github.com/markgcera/ip.git","repoName":"ip","organization":"markgcera","domainName":"github"},"branch":"master","displayName":"markgcera/ip[master]","outputFolderName":"markgcera_ip_master"},{"location":{"location":"https://github.com/dylkaw/ip.git","repoName":"ip","organization":"dylkaw","domainName":"github"},"branch":"master","displayName":"dylkaw/ip[master]","outputFolderName":"dylkaw_ip_master"},{"location":{"location":"https://github.com/SelwynAng/ip.git","repoName":"ip","organization":"SelwynAng","domainName":"github"},"branch":"master","displayName":"SelwynAng/ip[master]","outputFolderName":"SelwynAng_ip_master"},{"location":{"location":"https://github.com/jinyang628/ip.git","repoName":"ip","organization":"jinyang628","domainName":"github"},"branch":"master","displayName":"jinyang628/ip[master]","outputFolderName":"jinyang628_ip_master"},{"location":{"location":"https://github.com/matochichap/ip.git","repoName":"ip","organization":"matochichap","domainName":"github"},"branch":"master","displayName":"matochichap/ip[master]","outputFolderName":"matochichap_ip_master"},{"location":{"location":"https://github.com/sk2001git/ip.git","repoName":"ip","organization":"sk2001git","domainName":"github"},"branch":"master","displayName":"sk2001git/ip[master]","outputFolderName":"sk2001git_ip_master"},{"location":{"location":"https://github.com/jason-raiin/ip.git","repoName":"ip","organization":"jason-raiin","domainName":"github"},"branch":"master","displayName":"jason-raiin/ip[master]","outputFolderName":"jason-raiin_ip_master"},{"location":{"location":"https://github.com/Sebtey/ip.git","repoName":"ip","organization":"Sebtey","domainName":"github"},"branch":"master","displayName":"Sebtey/ip[master]","outputFolderName":"Sebtey_ip_master"},{"location":{"location":"https://github.com/Jweng88/ip.git","repoName":"ip","organization":"Jweng88","domainName":"github"},"branch":"master","displayName":"Jweng88/ip[master]","outputFolderName":"Jweng88_ip_master"},{"location":{"location":"https://github.com/billieboy7/ip.git","repoName":"ip","organization":"billieboy7","domainName":"github"},"branch":"master","displayName":"billieboy7/ip[master]","outputFolderName":"billieboy7_ip_master"},{"location":{"location":"https://github.com/ldinghan/ip.git","repoName":"ip","organization":"ldinghan","domainName":"github"},"branch":"master","displayName":"ldinghan/ip[master]","outputFolderName":"ldinghan_ip_master"},{"location":{"location":"https://github.com/anthonytamzil/ip.git","repoName":"ip","organization":"anthonytamzil","domainName":"github"},"branch":"master","displayName":"anthonytamzil/ip[master]","outputFolderName":"anthonytamzil_ip_master"},{"location":{"location":"https://github.com/ryantzr1/ip.git","repoName":"ip","organization":"ryantzr1","domainName":"github"},"branch":"master","displayName":"ryantzr1/ip[master]","outputFolderName":"ryantzr1_ip_master"},{"location":{"location":"https://github.com/shuyangk/ip.git","repoName":"ip","organization":"shuyangk","domainName":"github"},"branch":"master","displayName":"shuyangk/ip[master]","outputFolderName":"shuyangk_ip_master"},{"location":{"location":"https://github.com/seewhyjay/ip.git","repoName":"ip","organization":"seewhyjay","domainName":"github"},"branch":"master","displayName":"seewhyjay/ip[master]","outputFolderName":"seewhyjay_ip_master"},{"location":{"location":"https://github.com/waseemingly/ip.git","repoName":"ip","organization":"waseemingly","domainName":"github"},"branch":"master","displayName":"waseemingly/ip[master]","outputFolderName":"waseemingly_ip_master"},{"location":{"location":"https://github.com/DistractedCat/ip.git","repoName":"ip","organization":"DistractedCat","domainName":"github"},"branch":"master","displayName":"DistractedCat/ip[master]","outputFolderName":"DistractedCat_ip_master"},{"location":{"location":"https://github.com/geraldngjx/ip.git","repoName":"ip","organization":"geraldngjx","domainName":"github"},"branch":"master","displayName":"geraldngjx/ip[master]","outputFolderName":"geraldngjx_ip_master"},{"location":{"location":"https://github.com/tayian/ip.git","repoName":"ip","organization":"tayian","domainName":"github"},"branch":"master","displayName":"tayian/ip[master]","outputFolderName":"tayian_ip_master"},{"location":{"location":"https://github.com/AlfredBeNoel/ip.git","repoName":"ip","organization":"AlfredBeNoel","domainName":"github"},"branch":"master","displayName":"AlfredBeNoel/ip[master]","outputFolderName":"AlfredBeNoel_ip_master"},{"location":{"location":"https://github.com/Chen1x/ip.git","repoName":"ip","organization":"Chen1x","domainName":"github"},"branch":"master","displayName":"Chen1x/ip[master]","outputFolderName":"Chen1x_ip_master"},{"location":{"location":"https://github.com/juzzztinsoong/ip.git","repoName":"ip","organization":"juzzztinsoong","domainName":"github"},"branch":"master","displayName":"juzzztinsoong/ip[master]","outputFolderName":"juzzztinsoong_ip_master"},{"location":{"location":"https://github.com/lambraydon/ip.git","repoName":"ip","organization":"lambraydon","domainName":"github"},"branch":"master","displayName":"lambraydon/ip[master]","outputFolderName":"lambraydon_ip_master"},{"location":{"location":"https://github.com/lilozz2/ip.git","repoName":"ip","organization":"lilozz2","domainName":"github"},"branch":"master","displayName":"lilozz2/ip[master]","outputFolderName":"lilozz2_ip_master"},{"location":{"location":"https://github.com/tyouwei/ip.git","repoName":"ip","organization":"tyouwei","domainName":"github"},"branch":"master","displayName":"tyouwei/ip[master]","outputFolderName":"tyouwei_ip_master"},{"location":{"location":"https://github.com/Kailash201/ip.git","repoName":"ip","organization":"Kailash201","domainName":"github"},"branch":"master","displayName":"Kailash201/ip[master]","outputFolderName":"Kailash201_ip_master"},{"location":{"location":"https://github.com/tjingsheng/ip.git","repoName":"ip","organization":"tjingsheng","domainName":"github"},"branch":"master","displayName":"tjingsheng/ip[master]","outputFolderName":"tjingsheng_ip_master"},{"location":{"location":"https://github.com/pangyyen/ip.git","repoName":"ip","organization":"pangyyen","domainName":"github"},"branch":"master","displayName":"pangyyen/ip[master]","outputFolderName":"pangyyen_ip_master"},{"location":{"location":"https://github.com/Khaleelur-Rahman/ip.git","repoName":"ip","organization":"Khaleelur-Rahman","domainName":"github"},"branch":"master","displayName":"Khaleelur-Rahman/ip[master]","outputFolderName":"Khaleelur-Rahman_ip_master"},{"location":{"location":"https://github.com/erohsikivar/ip.git","repoName":"ip","organization":"erohsikivar","domainName":"github"},"branch":"master","displayName":"erohsikivar/ip[master]","outputFolderName":"erohsikivar_ip_master"},{"location":{"location":"https://github.com/shishirbychapur/ip.git","repoName":"ip","organization":"shishirbychapur","domainName":"github"},"branch":"master","displayName":"shishirbychapur/ip[master]","outputFolderName":"shishirbychapur_ip_master"},{"location":{"location":"https://github.com/Badatprogrammiing/ip.git","repoName":"ip","organization":"Badatprogrammiing","domainName":"github"},"branch":"master","displayName":"Badatprogrammiing/ip[master]","outputFolderName":"Badatprogrammiing_ip_master"},{"location":{"location":"https://github.com/ravern/ip.git","repoName":"ip","organization":"ravern","domainName":"github"},"branch":"master","displayName":"ravern/ip[master]","outputFolderName":"ravern_ip_master"},{"location":{"location":"https://github.com/B-enguin/ip.git","repoName":"ip","organization":"B-enguin","domainName":"github"},"branch":"master","displayName":"B-enguin/ip[master]","outputFolderName":"B-enguin_ip_master"},{"location":{"location":"https://github.com/AlyssaPng/ip.git","repoName":"ip","organization":"AlyssaPng","domainName":"github"},"branch":"master","displayName":"AlyssaPng/ip[master]","outputFolderName":"AlyssaPng_ip_master"},{"location":{"location":"https://github.com/flexibo/ip.git","repoName":"ip","organization":"flexibo","domainName":"github"},"branch":"master","displayName":"flexibo/ip[master]","outputFolderName":"flexibo_ip_master"},{"location":{"location":"https://github.com/lordidiot/ip.git","repoName":"ip","organization":"lordidiot","domainName":"github"},"branch":"master","displayName":"lordidiot/ip[master]","outputFolderName":"lordidiot_ip_master"},{"location":{"location":"https://github.com/vansh284/ip.git","repoName":"ip","organization":"vansh284","domainName":"github"},"branch":"master","displayName":"vansh284/ip[master]","outputFolderName":"vansh284_ip_master"},{"location":{"location":"https://github.com/samuelim01/ip.git","repoName":"ip","organization":"samuelim01","domainName":"github"},"branch":"master","displayName":"samuelim01/ip[master]","outputFolderName":"samuelim01_ip_master"},{"location":{"location":"https://github.com/WZWren/ip.git","repoName":"ip","organization":"WZWren","domainName":"github"},"branch":"master","displayName":"WZWren/ip[master]","outputFolderName":"WZWren_ip_master"},{"location":{"location":"https://github.com/cxo05/ip.git","repoName":"ip","organization":"cxo05","domainName":"github"},"branch":"master","displayName":"cxo05/ip[master]","outputFolderName":"cxo05_ip_master"},{"location":{"location":"https://github.com/sudarshan2401/ip.git","repoName":"ip","organization":"sudarshan2401","domainName":"github"},"branch":"master","displayName":"sudarshan2401/ip[master]","outputFolderName":"sudarshan2401_ip_master"},{"location":{"location":"https://github.com/jingyu987/ip.git","repoName":"ip","organization":"jingyu987","domainName":"github"},"branch":"master","displayName":"jingyu987/ip[master]","outputFolderName":"jingyu987_ip_master"},{"location":{"location":"https://github.com/H1410101/ip.git","repoName":"ip","organization":"H1410101","domainName":"github"},"branch":"master","displayName":"H1410101/ip[master]","outputFolderName":"H1410101_ip_master"},{"location":{"location":"https://github.com/MagnificentCreature/ip.git","repoName":"ip","organization":"MagnificentCreature","domainName":"github"},"branch":"master","displayName":"MagnificentCreature/ip[master]","outputFolderName":"MagnificentCreature_ip_master"},{"location":{"location":"https://github.com/shyanyong/ip.git","repoName":"ip","organization":"shyanyong","domainName":"github"},"branch":"master","displayName":"shyanyong/ip[master]","outputFolderName":"shyanyong_ip_master"},{"location":{"location":"https://github.com/peasantbird/ip.git","repoName":"ip","organization":"peasantbird","domainName":"github"},"branch":"master","displayName":"peasantbird/ip[master]","outputFolderName":"peasantbird_ip_master"},{"location":{"location":"https://github.com/tllshan/ip.git","repoName":"ip","organization":"tllshan","domainName":"github"},"branch":"master","displayName":"tllshan/ip[master]","outputFolderName":"tllshan_ip_master"},{"location":{"location":"https://github.com/sushiyade/ip.git","repoName":"ip","organization":"sushiyade","domainName":"github"},"branch":"master","displayName":"sushiyade/ip[master]","outputFolderName":"sushiyade_ip_master"},{"location":{"location":"https://github.com/iyioon/ip.git","repoName":"ip","organization":"iyioon","domainName":"github"},"branch":"master","displayName":"iyioon/ip[master]","outputFolderName":"iyioon_ip_master"},{"location":{"location":"https://github.com/shashahchk/ip.git","repoName":"ip","organization":"shashahchk","domainName":"github"},"branch":"master","displayName":"shashahchk/ip[master]","outputFolderName":"shashahchk_ip_master"},{"location":{"location":"https://github.com/Chandan8186/ip.git","repoName":"ip","organization":"Chandan8186","domainName":"github"},"branch":"master","displayName":"Chandan8186/ip[master]","outputFolderName":"Chandan8186_ip_master"},{"location":{"location":"https://github.com/wesho1107/ip.git","repoName":"ip","organization":"wesho1107","domainName":"github"},"branch":"master","displayName":"wesho1107/ip[master]","outputFolderName":"wesho1107_ip_master"},{"location":{"location":"https://github.com/tim-pipi/ip.git","repoName":"ip","organization":"tim-pipi","domainName":"github"},"branch":"master","displayName":"tim-pipi/ip[master]","outputFolderName":"tim-pipi_ip_master"},{"location":{"location":"https://github.com/emzm2023/ip.git","repoName":"ip","organization":"emzm2023","domainName":"github"},"branch":"master","displayName":"emzm2023/ip[master]","outputFolderName":"emzm2023_ip_master"},{"location":{"location":"https://github.com/dlathyun/ip.git","repoName":"ip","organization":"dlathyun","domainName":"github"},"branch":"master","displayName":"dlathyun/ip[master]","outputFolderName":"dlathyun_ip_master"},{"location":{"location":"https://github.com/tanboonkhong/ip.git","repoName":"ip","organization":"tanboonkhong","domainName":"github"},"branch":"master","displayName":"tanboonkhong/ip[master]","outputFolderName":"tanboonkhong_ip_master"},{"location":{"location":"https://github.com/joeng03/ip.git","repoName":"ip","organization":"joeng03","domainName":"github"},"branch":"master","displayName":"joeng03/ip[master]","outputFolderName":"joeng03_ip_master"},{"location":{"location":"https://github.com/VN-Hao/ip.git","repoName":"ip","organization":"VN-Hao","domainName":"github"},"branch":"master","displayName":"VN-Hao/ip[master]","outputFolderName":"VN-Hao_ip_master"},{"location":{"location":"https://github.com/NgChunMan/ip.git","repoName":"ip","organization":"NgChunMan","domainName":"github"},"branch":"master","displayName":"NgChunMan/ip[master]","outputFolderName":"NgChunMan_ip_master"},{"location":{"location":"https://github.com/TiwKangXu/ip.git","repoName":"ip","organization":"TiwKangXu","domainName":"github"},"branch":"master","displayName":"TiwKangXu/ip[master]","outputFolderName":"TiwKangXu_ip_master"},{"location":{"location":"https://github.com/josepholim/ip.git","repoName":"ip","organization":"josepholim","domainName":"github"},"branch":"master","displayName":"josepholim/ip[master]","outputFolderName":"josepholim_ip_master"},{"location":{"location":"https://github.com/dinde2004/ip.git","repoName":"ip","organization":"dinde2004","domainName":"github"},"branch":"master","displayName":"dinde2004/ip[master]","outputFolderName":"dinde2004_ip_master"},{"location":{"location":"https://github.com/yucongkoo/ip.git","repoName":"ip","organization":"yucongkoo","domainName":"github"},"branch":"master","displayName":"yucongkoo/ip[master]","outputFolderName":"yucongkoo_ip_master"},{"location":{"location":"https://github.com/TohLiYuan/ip.git","repoName":"ip","organization":"TohLiYuan","domainName":"github"},"branch":"master","displayName":"TohLiYuan/ip[master]","outputFolderName":"TohLiYuan_ip_master"},{"location":{"location":"https://github.com/NereusWB922/ip.git","repoName":"ip","organization":"NereusWB922","domainName":"github"},"branch":"master","displayName":"NereusWB922/ip[master]","outputFolderName":"NereusWB922_ip_master"},{"location":{"location":"https://github.com/ph-nathan/ip.git","repoName":"ip","organization":"ph-nathan","domainName":"github"},"branch":"master","displayName":"ph-nathan/ip[master]","outputFolderName":"ph-nathan_ip_master"},{"location":{"location":"https://github.com/antonTan96/ip.git","repoName":"ip","organization":"antonTan96","domainName":"github"},"branch":"master","displayName":"antonTan96/ip[master]","outputFolderName":"antonTan96_ip_master"},{"location":{"location":"https://github.com/WinstonLeonard/ip.git","repoName":"ip","organization":"WinstonLeonard","domainName":"github"},"branch":"master","displayName":"WinstonLeonard/ip[master]","outputFolderName":"WinstonLeonard_ip_master"},{"location":{"location":"https://github.com/TehOPanas/ip.git","repoName":"ip","organization":"TehOPanas","domainName":"github"},"branch":"master","displayName":"TehOPanas/ip[master]","outputFolderName":"TehOPanas_ip_master"},{"location":{"location":"https://github.com/marioalvaro/ip.git","repoName":"ip","organization":"marioalvaro","domainName":"github"},"branch":"master","displayName":"marioalvaro/ip[master]","outputFolderName":"marioalvaro_ip_master"},{"location":{"location":"https://github.com/LINCHENYU2030S/ip.git","repoName":"ip","organization":"LINCHENYU2030S","domainName":"github"},"branch":"master","displayName":"LINCHENYU2030S/ip[master]","outputFolderName":"LINCHENYU2030S_ip_master"},{"location":{"location":"https://github.com/LamJiuFong/ip.git","repoName":"ip","organization":"LamJiuFong","domainName":"github"},"branch":"master","displayName":"LamJiuFong/ip[master]","outputFolderName":"LamJiuFong_ip_master"},{"location":{"location":"https://github.com/AndrewJanong/ip.git","repoName":"ip","organization":"AndrewJanong","domainName":"github"},"branch":"master","displayName":"AndrewJanong/ip[master]","outputFolderName":"AndrewJanong_ip_master"},{"location":{"location":"https://github.com/songfangyl/ip.git","repoName":"ip","organization":"songfangyl","domainName":"github"},"branch":"master","displayName":"songfangyl/ip[master]","outputFolderName":"songfangyl_ip_master"},{"location":{"location":"https://github.com/AriellaCallista/ip.git","repoName":"ip","organization":"AriellaCallista","domainName":"github"},"branch":"master","displayName":"AriellaCallista/ip[master]","outputFolderName":"AriellaCallista_ip_master"},{"location":{"location":"https://github.com/KamJiaYue/ip.git","repoName":"ip","organization":"KamJiaYue","domainName":"github"},"branch":"master","displayName":"KamJiaYue/ip[master]","outputFolderName":"KamJiaYue_ip_master"},{"location":{"location":"https://github.com/feifeiraindrops/ip.git","repoName":"ip","organization":"feifeiraindrops","domainName":"github"},"branch":"master","displayName":"feifeiraindrops/ip[master]","outputFolderName":"feifeiraindrops_ip_master"},{"location":{"location":"https://github.com/czhiruo/ip.git","repoName":"ip","organization":"czhiruo","domainName":"github"},"branch":"master","displayName":"czhiruo/ip[master]","outputFolderName":"czhiruo_ip_master"},{"location":{"location":"https://github.com/butteredyakiimo/ip.git","repoName":"ip","organization":"butteredyakiimo","domainName":"github"},"branch":"master","displayName":"butteredyakiimo/ip[master]","outputFolderName":"butteredyakiimo_ip_master"},{"location":{"location":"https://github.com/RiyaMehta2211/ip.git","repoName":"ip","organization":"RiyaMehta2211","domainName":"github"},"branch":"master","displayName":"RiyaMehta2211/ip[master]","outputFolderName":"RiyaMehta2211_ip_master"},{"location":{"location":"https://github.com/beatricecst/ip.git","repoName":"ip","organization":"beatricecst","domainName":"github"},"branch":"master","displayName":"beatricecst/ip[master]","outputFolderName":"beatricecst_ip_master"},{"location":{"location":"https://github.com/maypfv/ip.git","repoName":"ip","organization":"maypfv","domainName":"github"},"branch":"master","displayName":"maypfv/ip[master]","outputFolderName":"maypfv_ip_master"},{"location":{"location":"https://github.com/pra-navi/ip.git","repoName":"ip","organization":"pra-navi","domainName":"github"},"branch":"master","displayName":"pra-navi/ip[master]","outputFolderName":"pra-navi_ip_master"},{"location":{"location":"https://github.com/xxiaoweii/ip.git","repoName":"ip","organization":"xxiaoweii","domainName":"github"},"branch":"master","displayName":"xxiaoweii/ip[master]","outputFolderName":"xxiaoweii_ip_master"},{"location":{"location":"https://github.com/qyaner/ip.git","repoName":"ip","organization":"qyaner","domainName":"github"},"branch":"master","displayName":"qyaner/ip[master]","outputFolderName":"qyaner_ip_master"},{"location":{"location":"https://github.com/qz1004/ip.git","repoName":"ip","organization":"qz1004","domainName":"github"},"branch":"master","displayName":"qz1004/ip[master]","outputFolderName":"qz1004_ip_master"},{"location":{"location":"https://github.com/miljyy/ip.git","repoName":"ip","organization":"miljyy","domainName":"github"},"branch":"master","displayName":"miljyy/ip[master]","outputFolderName":"miljyy_ip_master"},{"location":{"location":"https://github.com/yihfei/ip.git","repoName":"ip","organization":"yihfei","domainName":"github"},"branch":"master","displayName":"yihfei/ip[master]","outputFolderName":"yihfei_ip_master"},{"location":{"location":"https://github.com/Gabriel4357/ip.git","repoName":"ip","organization":"Gabriel4357","domainName":"github"},"branch":"master","displayName":"Gabriel4357/ip[master]","outputFolderName":"Gabriel4357_ip_master"},{"location":{"location":"https://github.com/saraozn/ip.git","repoName":"ip","organization":"saraozn","domainName":"github"},"branch":"master","displayName":"saraozn/ip[master]","outputFolderName":"saraozn_ip_master"},{"location":{"location":"https://github.com/JeremyYong128/ip.git","repoName":"ip","organization":"JeremyYong128","domainName":"github"},"branch":"master","displayName":"JeremyYong128/ip[master]","outputFolderName":"JeremyYong128_ip_master"},{"location":{"location":"https://github.com/samuelmui8/ip.git","repoName":"ip","organization":"samuelmui8","domainName":"github"},"branch":"master","displayName":"samuelmui8/ip[master]","outputFolderName":"samuelmui8_ip_master"},{"location":{"location":"https://github.com/elaineshijie/ip.git","repoName":"ip","organization":"elaineshijie","domainName":"github"},"branch":"master","displayName":"elaineshijie/ip[master]","outputFolderName":"elaineshijie_ip_master"},{"location":{"location":"https://github.com/zhengyup/ip.git","repoName":"ip","organization":"zhengyup","domainName":"github"},"branch":"master","displayName":"zhengyup/ip[master]","outputFolderName":"zhengyup_ip_master"},{"location":{"location":"https://github.com/ruishanteo/ip.git","repoName":"ip","organization":"ruishanteo","domainName":"github"},"branch":"master","displayName":"ruishanteo/ip[master]","outputFolderName":"ruishanteo_ip_master"},{"location":{"location":"https://github.com/lynnlow175/ip.git","repoName":"ip","organization":"lynnlow175","domainName":"github"},"branch":"master","displayName":"lynnlow175/ip[master]","outputFolderName":"lynnlow175_ip_master"},{"location":{"location":"https://github.com/kohkaijie/ip.git","repoName":"ip","organization":"kohkaijie","domainName":"github"},"branch":"master","displayName":"kohkaijie/ip[master]","outputFolderName":"kohkaijie_ip_master"},{"location":{"location":"https://github.com/CelestineTan03/ip.git","repoName":"ip","organization":"CelestineTan03","domainName":"github"},"branch":"master","displayName":"CelestineTan03/ip[master]","outputFolderName":"CelestineTan03_ip_master"},{"location":{"location":"https://github.com/PearlynnT/ip.git","repoName":"ip","organization":"PearlynnT","domainName":"github"},"branch":"master","displayName":"PearlynnT/ip[master]","outputFolderName":"PearlynnT_ip_master"},{"location":{"location":"https://github.com/Elijah5399/ip.git","repoName":"ip","organization":"Elijah5399","domainName":"github"},"branch":"master","displayName":"Elijah5399/ip[master]","outputFolderName":"Elijah5399_ip_master"},{"location":{"location":"https://github.com/nicleongyj/ip.git","repoName":"ip","organization":"nicleongyj","domainName":"github"},"branch":"master","displayName":"nicleongyj/ip[master]","outputFolderName":"nicleongyj_ip_master"},{"location":{"location":"https://github.com/AnnabelTing/ip.git","repoName":"ip","organization":"AnnabelTing","domainName":"github"},"branch":"master","displayName":"AnnabelTing/ip[master]","outputFolderName":"AnnabelTing_ip_master"},{"location":{"location":"https://github.com/jrchoo/ip.git","repoName":"ip","organization":"jrchoo","domainName":"github"},"branch":"master","displayName":"jrchoo/ip[master]","outputFolderName":"jrchoo_ip_master"},{"location":{"location":"https://github.com/wujy28/ip.git","repoName":"ip","organization":"wujy28","domainName":"github"},"branch":"master","displayName":"wujy28/ip[master]","outputFolderName":"wujy28_ip_master"},{"location":{"location":"https://github.com/Nauxe/ip.git","repoName":"ip","organization":"Nauxe","domainName":"github"},"branch":"master","displayName":"Nauxe/ip[master]","outputFolderName":"Nauxe_ip_master"},{"location":{"location":"https://github.com/yyyaohhh/ip.git","repoName":"ip","organization":"yyyaohhh","domainName":"github"},"branch":"master","displayName":"yyyaohhh/ip[master]","outputFolderName":"yyyaohhh_ip_master"},{"location":{"location":"https://github.com/xenosf/ip.git","repoName":"ip","organization":"xenosf","domainName":"github"},"branch":"master","displayName":"xenosf/ip[master]","outputFolderName":"xenosf_ip_master"},{"location":{"location":"https://github.com/WinSheng1/ip.git","repoName":"ip","organization":"WinSheng1","domainName":"github"},"branch":"master","displayName":"WinSheng1/ip[master]","outputFolderName":"WinSheng1_ip_master"},{"location":{"location":"https://github.com/nreHieW/ip.git","repoName":"ip","organization":"nreHieW","domainName":"github"},"branch":"master","displayName":"nreHieW/ip[master]","outputFolderName":"nreHieW_ip_master"},{"location":{"location":"https://github.com/peiran18/ip.git","repoName":"ip","organization":"peiran18","domainName":"github"},"branch":"master","displayName":"peiran18/ip[master]","outputFolderName":"peiran18_ip_master"},{"location":{"location":"https://github.com/cheeggered/ip.git","repoName":"ip","organization":"cheeggered","domainName":"github"},"branch":"master","displayName":"cheeggered/ip[master]","outputFolderName":"cheeggered_ip_master"},{"location":{"location":"https://github.com/GohTengFong/ip.git","repoName":"ip","organization":"GohTengFong","domainName":"github"},"branch":"master","displayName":"GohTengFong/ip[master]","outputFolderName":"GohTengFong_ip_master"},{"location":{"location":"https://github.com/jibtaf/ip.git","repoName":"ip","organization":"jibtaf","domainName":"github"},"branch":"master","displayName":"jibtaf/ip[master]","outputFolderName":"jibtaf_ip_master"},{"location":{"location":"https://github.com/bhnuka/ip.git","repoName":"ip","organization":"bhnuka","domainName":"github"},"branch":"master","displayName":"bhnuka/ip[master]","outputFolderName":"bhnuka_ip_master"},{"location":{"location":"https://github.com/laurenlim2112/ip.git","repoName":"ip","organization":"laurenlim2112","domainName":"github"},"branch":"master","displayName":"laurenlim2112/ip[master]","outputFolderName":"laurenlim2112_ip_master"},{"location":{"location":"https://github.com/howenc/ip.git","repoName":"ip","organization":"howenc","domainName":"github"},"branch":"master","displayName":"howenc/ip[master]","outputFolderName":"howenc_ip_master"},{"location":{"location":"https://github.com/Kokseng1/ip.git","repoName":"ip","organization":"Kokseng1","domainName":"github"},"branch":"master","displayName":"Kokseng1/ip[master]","outputFolderName":"Kokseng1_ip_master"},{"location":{"location":"https://github.com/yiwen101/ip.git","repoName":"ip","organization":"yiwen101","domainName":"github"},"branch":"master","displayName":"yiwen101/ip[master]","outputFolderName":"yiwen101_ip_master"},{"location":{"location":"https://github.com/Cikguseven/ip.git","repoName":"ip","organization":"Cikguseven","domainName":"github"},"branch":"master","displayName":"Cikguseven/ip[master]","outputFolderName":"Cikguseven_ip_master"},{"location":{"location":"https://github.com/javinchua/ip.git","repoName":"ip","organization":"javinchua","domainName":"github"},"branch":"master","displayName":"javinchua/ip[master]","outputFolderName":"javinchua_ip_master"},{"location":{"location":"https://github.com/frrrrry/ip.git","repoName":"ip","organization":"frrrrry","domainName":"github"},"branch":"master","displayName":"frrrrry/ip[master]","outputFolderName":"frrrrry_ip_master"},{"location":{"location":"https://github.com/YeoBohShin/ip.git","repoName":"ip","organization":"YeoBohShin","domainName":"github"},"branch":"master","displayName":"YeoBohShin/ip[master]","outputFolderName":"YeoBohShin_ip_master"},{"location":{"location":"https://github.com/yongning0310/ip.git","repoName":"ip","organization":"yongning0310","domainName":"github"},"branch":"master","displayName":"yongning0310/ip[master]","outputFolderName":"yongning0310_ip_master"},{"location":{"location":"https://github.com/SimWPEric/ip.git","repoName":"ip","organization":"SimWPEric","domainName":"github"},"branch":"master","displayName":"SimWPEric/ip[master]","outputFolderName":"SimWPEric_ip_master"},{"location":{"location":"https://github.com/sopa301/ip.git","repoName":"ip","organization":"sopa301","domainName":"github"},"branch":"master","displayName":"sopa301/ip[master]","outputFolderName":"sopa301_ip_master"},{"location":{"location":"https://github.com/nananakx-x/ip.git","repoName":"ip","organization":"nananakx-x","domainName":"github"},"branch":"master","displayName":"nananakx-x/ip[master]","outputFolderName":"nananakx-x_ip_master"},{"location":{"location":"https://github.com/LuoZYi/ip.git","repoName":"ip","organization":"LuoZYi","domainName":"github"},"branch":"master","displayName":"LuoZYi/ip[master]","outputFolderName":"LuoZYi_ip_master"},{"location":{"location":"https://github.com/LinWanLeii/ip.git","repoName":"ip","organization":"LinWanLeii","domainName":"github"},"branch":"master","displayName":"LinWanLeii/ip[master]","outputFolderName":"LinWanLeii_ip_master"},{"location":{"location":"https://github.com/mingyuanc/ip.git","repoName":"ip","organization":"mingyuanc","domainName":"github"},"branch":"master","displayName":"mingyuanc/ip[master]","outputFolderName":"mingyuanc_ip_master"},{"location":{"location":"https://github.com/chonguschonguschongus/ip.git","repoName":"ip","organization":"chonguschonguschongus","domainName":"github"},"branch":"master","displayName":"chonguschonguschongus/ip[master]","outputFolderName":"chonguschonguschongus_ip_master"},{"location":{"location":"https://github.com/yanghengtang/ip.git","repoName":"ip","organization":"yanghengtang","domainName":"github"},"branch":"master","displayName":"yanghengtang/ip[master]","outputFolderName":"yanghengtang_ip_master"},{"location":{"location":"https://github.com/victorpengmx/ip.git","repoName":"ip","organization":"victorpengmx","domainName":"github"},"branch":"master","displayName":"victorpengmx/ip[master]","outputFolderName":"victorpengmx_ip_master"},{"location":{"location":"https://github.com/kanna-1/ip.git","repoName":"ip","organization":"kanna-1","domainName":"github"},"branch":"master","displayName":"kanna-1/ip[master]","outputFolderName":"kanna-1_ip_master"},{"location":{"location":"https://github.com/ncduy0303/ip.git","repoName":"ip","organization":"ncduy0303","domainName":"github"},"branch":"master","displayName":"ncduy0303/ip[master]","outputFolderName":"ncduy0303_ip_master"},{"location":{"location":"https://github.com/jannnice/ip.git","repoName":"ip","organization":"jannnice","domainName":"github"},"branch":"master","displayName":"jannnice/ip[master]","outputFolderName":"jannnice_ip_master"},{"location":{"location":"https://github.com/itssisi/ip.git","repoName":"ip","organization":"itssisi","domainName":"github"},"branch":"master","displayName":"itssisi/ip[master]","outputFolderName":"itssisi_ip_master"},{"location":{"location":"https://github.com/freddychenyouren2/ip.git","repoName":"ip","organization":"freddychenyouren2","domainName":"github"},"branch":"master","displayName":"freddychenyouren2/ip[master]","outputFolderName":"freddychenyouren2_ip_master"},{"location":{"location":"https://github.com/Vanessamae23/ip.git","repoName":"ip","organization":"Vanessamae23","domainName":"github"},"branch":"master","displayName":"Vanessamae23/ip[master]","outputFolderName":"Vanessamae23_ip_master"},{"location":{"location":"https://github.com/cbj252/ip.git","repoName":"ip","organization":"cbj252","domainName":"github"},"branch":"master","displayName":"cbj252/ip[master]","outputFolderName":"cbj252_ip_master"},{"location":{"location":"https://github.com/freshcabbage123/ip.git","repoName":"ip","organization":"freshcabbage123","domainName":"github"},"branch":"master","displayName":"freshcabbage123/ip[master]","outputFolderName":"freshcabbage123_ip_master"},{"location":{"location":"https://github.com/thienmy0/ip.git","repoName":"ip","organization":"thienmy0","domainName":"github"},"branch":"master","displayName":"thienmy0/ip[master]","outputFolderName":"thienmy0_ip_master"},{"location":{"location":"https://github.com/glenngnng/ip.git","repoName":"ip","organization":"glenngnng","domainName":"github"},"branch":"master","displayName":"glenngnng/ip[master]","outputFolderName":"glenngnng_ip_master"},{"location":{"location":"https://github.com/Darren159/ip.git","repoName":"ip","organization":"Darren159","domainName":"github"},"branch":"master","displayName":"Darren159/ip[master]","outputFolderName":"Darren159_ip_master"},{"location":{"location":"https://github.com/J-hta-n/ip.git","repoName":"ip","organization":"J-hta-n","domainName":"github"},"branch":"master","displayName":"J-hta-n/ip[master]","outputFolderName":"J-hta-n_ip_master"},{"location":{"location":"https://github.com/evanyan13/ip.git","repoName":"ip","organization":"evanyan13","domainName":"github"},"branch":"master","displayName":"evanyan13/ip[master]","outputFolderName":"evanyan13_ip_master"},{"location":{"location":"https://github.com/tanveersingh10/ip.git","repoName":"ip","organization":"tanveersingh10","domainName":"github"},"branch":"master","displayName":"tanveersingh10/ip[master]","outputFolderName":"tanveersingh10_ip_master"},{"location":{"location":"https://github.com/neyapraveen/ip.git","repoName":"ip","organization":"neyapraveen","domainName":"github"},"branch":"master","displayName":"neyapraveen/ip[master]","outputFolderName":"neyapraveen_ip_master"},{"location":{"location":"https://github.com/weeweh/ip.git","repoName":"ip","organization":"weeweh","domainName":"github"},"branch":"master","displayName":"weeweh/ip[master]","outputFolderName":"weeweh_ip_master"},{"location":{"location":"https://github.com/HugeNoob/ip.git","repoName":"ip","organization":"HugeNoob","domainName":"github"},"branch":"master","displayName":"HugeNoob/ip[master]","outputFolderName":"HugeNoob_ip_master"},{"location":{"location":"https://github.com/wasjoe1/ip.git","repoName":"ip","organization":"wasjoe1","domainName":"github"},"branch":"master","displayName":"wasjoe1/ip[master]","outputFolderName":"wasjoe1_ip_master"},{"location":{"location":"https://github.com/s-kybound/ip.git","repoName":"ip","organization":"s-kybound","domainName":"github"},"branch":"master","displayName":"s-kybound/ip[master]","outputFolderName":"s-kybound_ip_master"},{"location":{"location":"https://github.com/Singa-pirate/ip.git","repoName":"ip","organization":"Singa-pirate","domainName":"github"},"branch":"master","displayName":"Singa-pirate/ip[master]","outputFolderName":"Singa-pirate_ip_master"},{"location":{"location":"https://github.com/wanghejin/ip.git","repoName":"ip","organization":"wanghejin","domainName":"github"},"branch":"master","displayName":"wanghejin/ip[master]","outputFolderName":"wanghejin_ip_master"},{"location":{"location":"https://github.com/yarnmengnus/ip.git","repoName":"ip","organization":"yarnmengnus","domainName":"github"},"branch":"master","displayName":"yarnmengnus/ip[master]","outputFolderName":"yarnmengnus_ip_master"},{"location":{"location":"https://github.com/Kurtyjlee/ip.git","repoName":"ip","organization":"Kurtyjlee","domainName":"github"},"branch":"master","displayName":"Kurtyjlee/ip[master]","outputFolderName":"Kurtyjlee_ip_master"},{"location":{"location":"https://github.com/jellywaiyan/ip.git","repoName":"ip","organization":"jellywaiyan","domainName":"github"},"branch":"master","displayName":"jellywaiyan/ip[master]","outputFolderName":"jellywaiyan_ip_master"},{"location":{"location":"https://github.com/ylyma/ip.git","repoName":"ip","organization":"ylyma","domainName":"github"},"branch":"master","displayName":"ylyma/ip[master]","outputFolderName":"ylyma_ip_master"},{"location":{"location":"https://github.com/revdrag/ip.git","repoName":"ip","organization":"revdrag","domainName":"github"},"branch":"master","displayName":"revdrag/ip[master]","outputFolderName":"revdrag_ip_master"},{"location":{"location":"https://github.com/vijay-shankaranand/ip.git","repoName":"ip","organization":"vijay-shankaranand","domainName":"github"},"branch":"master","displayName":"vijay-shankaranand/ip[master]","outputFolderName":"vijay-shankaranand_ip_master"},{"location":{"location":"https://github.com/lerxuann/ip.git","repoName":"ip","organization":"lerxuann","domainName":"github"},"branch":"master","displayName":"lerxuann/ip[master]","outputFolderName":"lerxuann_ip_master"},{"location":{"location":"https://github.com/yuxunn/ip.git","repoName":"ip","organization":"yuxunn","domainName":"github"},"branch":"master","displayName":"yuxunn/ip[master]","outputFolderName":"yuxunn_ip_master"},{"location":{"location":"https://github.com/zannloo/ip.git","repoName":"ip","organization":"zannloo","domainName":"github"},"branch":"master","displayName":"zannloo/ip[master]","outputFolderName":"zannloo_ip_master"},{"location":{"location":"https://github.com/AryanG01/ip.git","repoName":"ip","organization":"AryanG01","domainName":"github"},"branch":"master","displayName":"AryanG01/ip[master]","outputFolderName":"AryanG01_ip_master"},{"location":{"location":"https://github.com/oeggy03/ip.git","repoName":"ip","organization":"oeggy03","domainName":"github"},"branch":"master","displayName":"oeggy03/ip[master]","outputFolderName":"oeggy03_ip_master"},{"location":{"location":"https://github.com/jeffrey-jian/ip.git","repoName":"ip","organization":"jeffrey-jian","domainName":"github"},"branch":"master","displayName":"jeffrey-jian/ip[master]","outputFolderName":"jeffrey-jian_ip_master"},{"location":{"location":"https://github.com/nicholastng010601/ip.git","repoName":"ip","organization":"nicholastng010601","domainName":"github"},"branch":"master","displayName":"nicholastng010601/ip[master]","outputFolderName":"nicholastng010601_ip_master"},{"location":{"location":"https://github.com/Weiennn/ip.git","repoName":"ip","organization":"Weiennn","domainName":"github"},"branch":"master","displayName":"Weiennn/ip[master]","outputFolderName":"Weiennn_ip_master"},{"location":{"location":"https://github.com/tayruxin/ip.git","repoName":"ip","organization":"tayruxin","domainName":"github"},"branch":"master","displayName":"tayruxin/ip[master]","outputFolderName":"tayruxin_ip_master"},{"location":{"location":"https://github.com/xyT-T/ip.git","repoName":"ip","organization":"xyT-T","domainName":"github"},"branch":"master","displayName":"xyT-T/ip[master]","outputFolderName":"xyT-T_ip_master"},{"location":{"location":"https://github.com/lunaroddity/ip.git","repoName":"ip","organization":"lunaroddity","domainName":"github"},"branch":"master","displayName":"lunaroddity/ip[master]","outputFolderName":"lunaroddity_ip_master"},{"location":{"location":"https://github.com/nabonitasen/ip.git","repoName":"ip","organization":"nabonitasen","domainName":"github"},"branch":"master","displayName":"nabonitasen/ip[master]","outputFolderName":"nabonitasen_ip_master"},{"location":{"location":"https://github.com/inezkok/ip.git","repoName":"ip","organization":"inezkok","domainName":"github"},"branch":"master","displayName":"inezkok/ip[master]","outputFolderName":"inezkok_ip_master"},{"location":{"location":"https://github.com/nknguyenhc/ip.git","repoName":"ip","organization":"nknguyenhc","domainName":"github"},"branch":"master","displayName":"nknguyenhc/ip[master]","outputFolderName":"nknguyenhc_ip_master"},{"location":{"location":"https://github.com/keaganpzh/ip.git","repoName":"ip","organization":"keaganpzh","domainName":"github"},"branch":"master","displayName":"keaganpzh/ip[master]","outputFolderName":"keaganpzh_ip_master"},{"location":{"location":"https://github.com/lululwtv/ip.git","repoName":"ip","organization":"lululwtv","domainName":"github"},"branch":"master","displayName":"lululwtv/ip[master]","outputFolderName":"lululwtv_ip_master"},{"location":{"location":"https://github.com/hcs1203/ip.git","repoName":"ip","organization":"hcs1203","domainName":"github"},"branch":"master","displayName":"hcs1203/ip[master]","outputFolderName":"hcs1203_ip_master"},{"location":{"location":"https://github.com/migfoo02/ip.git","repoName":"ip","organization":"migfoo02","domainName":"github"},"branch":"master","displayName":"migfoo02/ip[master]","outputFolderName":"migfoo02_ip_master"},{"location":{"location":"https://github.com/papataco14/ip.git","repoName":"ip","organization":"papataco14","domainName":"github"},"branch":"master","displayName":"papataco14/ip[master]","outputFolderName":"papataco14_ip_master"},{"location":{"location":"https://github.com/coderhuang559/ip.git","repoName":"ip","organization":"coderhuang559","domainName":"github"},"branch":"master","displayName":"coderhuang559/ip[master]","outputFolderName":"coderhuang559_ip_master"},{"location":{"location":"https://github.com/craigtonlian/ip.git","repoName":"ip","organization":"craigtonlian","domainName":"github"},"branch":"master","displayName":"craigtonlian/ip[master]","outputFolderName":"craigtonlian_ip_master"},{"location":{"location":"https://github.com/adammangzijun/ip.git","repoName":"ip","organization":"adammangzijun","domainName":"github"},"branch":"master","displayName":"adammangzijun/ip[master]","outputFolderName":"adammangzijun_ip_master"},{"location":{"location":"https://github.com/AlainS87/ip.git","repoName":"ip","organization":"AlainS87","domainName":"github"},"branch":"master","displayName":"AlainS87/ip[master]","outputFolderName":"AlainS87_ip_master"},{"location":{"location":"https://github.com/tanyyyming/ip.git","repoName":"ip","organization":"tanyyyming","domainName":"github"},"branch":"master","displayName":"tanyyyming/ip[master]","outputFolderName":"tanyyyming_ip_master"},{"location":{"location":"https://github.com/Saezenn/ip.git","repoName":"ip","organization":"Saezenn","domainName":"github"},"branch":"master","displayName":"Saezenn/ip[master]","outputFolderName":"Saezenn_ip_master"},{"location":{"location":"https://github.com/kayabuttertoastt/ip.git","repoName":"ip","organization":"kayabuttertoastt","domainName":"github"},"branch":"master","displayName":"kayabuttertoastt/ip[master]","outputFolderName":"kayabuttertoastt_ip_master"},{"location":{"location":"https://github.com/limjunxian1/ip.git","repoName":"ip","organization":"limjunxian1","domainName":"github"},"branch":"master","displayName":"limjunxian1/ip[master]","outputFolderName":"limjunxian1_ip_master"},{"location":{"location":"https://github.com/andrechuakj/ip.git","repoName":"ip","organization":"andrechuakj","domainName":"github"},"branch":"master","displayName":"andrechuakj/ip[master]","outputFolderName":"andrechuakj_ip_master"},{"location":{"location":"https://github.com/kwangthiag/ip.git","repoName":"ip","organization":"kwangthiag","domainName":"github"},"branch":"master","displayName":"kwangthiag/ip[master]","outputFolderName":"kwangthiag_ip_master"},{"location":{"location":"https://github.com/ricketytoc/ip.git","repoName":"ip","organization":"ricketytoc","domainName":"github"},"branch":"master","displayName":"ricketytoc/ip[master]","outputFolderName":"ricketytoc_ip_master"},{"location":{"location":"https://github.com/applepiofmyeye/ip.git","repoName":"ip","organization":"applepiofmyeye","domainName":"github"},"branch":"master","displayName":"applepiofmyeye/ip[master]","outputFolderName":"applepiofmyeye_ip_master"},{"location":{"location":"https://github.com/nubnubyas/ip.git","repoName":"ip","organization":"nubnubyas","domainName":"github"},"branch":"master","displayName":"nubnubyas/ip[master]","outputFolderName":"nubnubyas_ip_master"},{"location":{"location":"https://github.com/WeeeHung/ip.git","repoName":"ip","organization":"WeeeHung","domainName":"github"},"branch":"master","displayName":"WeeeHung/ip[master]","outputFolderName":"WeeeHung_ip_master"},{"location":{"location":"https://github.com/Eola-Z/ip.git","repoName":"ip","organization":"Eola-Z","domainName":"github"},"branch":"master","displayName":"Eola-Z/ip[master]","outputFolderName":"Eola-Z_ip_master"},{"location":{"location":"https://github.com/jordankanghm/ip.git","repoName":"ip","organization":"jordankanghm","domainName":"github"},"branch":"master","displayName":"jordankanghm/ip[master]","outputFolderName":"jordankanghm_ip_master"},{"location":{"location":"https://github.com/zacwong2151/ip.git","repoName":"ip","organization":"zacwong2151","domainName":"github"},"branch":"master","displayName":"zacwong2151/ip[master]","outputFolderName":"zacwong2151_ip_master"},{"location":{"location":"https://github.com/m1oojv/ip.git","repoName":"ip","organization":"m1oojv","domainName":"github"},"branch":"master","displayName":"m1oojv/ip[master]","outputFolderName":"m1oojv_ip_master"},{"location":{"location":"https://github.com/JCSnap/ip.git","repoName":"ip","organization":"JCSnap","domainName":"github"},"branch":"master","displayName":"JCSnap/ip[master]","outputFolderName":"JCSnap_ip_master"},{"location":{"location":"https://github.com/Nid21cs/ip.git","repoName":"ip","organization":"Nid21cs","domainName":"github"},"branch":"master","displayName":"Nid21cs/ip[master]","outputFolderName":"Nid21cs_ip_master"},{"location":{"location":"https://github.com/mfjkri/ip.git","repoName":"ip","organization":"mfjkri","domainName":"github"},"branch":"master","displayName":"mfjkri/ip[master]","outputFolderName":"mfjkri_ip_master"},{"location":{"location":"https://github.com/Choonyan02/ip.git","repoName":"ip","organization":"Choonyan02","domainName":"github"},"branch":"master","displayName":"Choonyan02/ip[master]","outputFolderName":"Choonyan02_ip_master"},{"location":{"location":"https://github.com/rayyan35p/ip.git","repoName":"ip","organization":"rayyan35p","domainName":"github"},"branch":"master","displayName":"rayyan35p/ip[master]","outputFolderName":"rayyan35p_ip_master"},{"location":{"location":"https://github.com/dhruvir29/ip.git","repoName":"ip","organization":"dhruvir29","domainName":"github"},"branch":"master","displayName":"dhruvir29/ip[master]","outputFolderName":"dhruvir29_ip_master"},{"location":{"location":"https://github.com/Mohammed-Faizzzz/ip.git","repoName":"ip","organization":"Mohammed-Faizzzz","domainName":"github"},"branch":"master","displayName":"Mohammed-Faizzzz/ip[master]","outputFolderName":"Mohammed-Faizzzz_ip_master"},{"location":{"location":"https://github.com/ruo-x/ip.git","repoName":"ip","organization":"ruo-x","domainName":"github"},"branch":"master","displayName":"ruo-x/ip[master]","outputFolderName":"ruo-x_ip_master"},{"location":{"location":"https://github.com/DonovanJJ/ip.git","repoName":"ip","organization":"DonovanJJ","domainName":"github"},"branch":"master","displayName":"DonovanJJ/ip[master]","outputFolderName":"DonovanJJ_ip_master"},{"location":{"location":"https://github.com/kristayeo/ip.git","repoName":"ip","organization":"kristayeo","domainName":"github"},"branch":"master","displayName":"kristayeo/ip[master]","outputFolderName":"kristayeo_ip_master"},{"location":{"location":"https://github.com/ZD292/ip.git","repoName":"ip","organization":"ZD292","domainName":"github"},"branch":"master","displayName":"ZD292/ip[master]","outputFolderName":"ZD292_ip_master"},{"location":{"location":"https://github.com/jingjie88/ip.git","repoName":"ip","organization":"jingjie88","domainName":"github"},"branch":"master","displayName":"jingjie88/ip[master]","outputFolderName":"jingjie88_ip_master"},{"location":{"location":"https://github.com/iantsaii/ip.git","repoName":"ip","organization":"iantsaii","domainName":"github"},"branch":"master","displayName":"iantsaii/ip[master]","outputFolderName":"iantsaii_ip_master"},{"location":{"location":"https://github.com/jingting1412/ip.git","repoName":"ip","organization":"jingting1412","domainName":"github"},"branch":"master","displayName":"jingting1412/ip[master]","outputFolderName":"jingting1412_ip_master"},{"location":{"location":"https://github.com/wnchan/ip.git","repoName":"ip","organization":"wnchan","domainName":"github"},"branch":"master","displayName":"wnchan/ip[master]","outputFolderName":"wnchan_ip_master"},{"location":{"location":"https://github.com/jack1e0/ip.git","repoName":"ip","organization":"jack1e0","domainName":"github"},"branch":"master","displayName":"jack1e0/ip[master]","outputFolderName":"jack1e0_ip_master"},{"location":{"location":"https://github.com/mingyu-wan/ip.git","repoName":"ip","organization":"mingyu-wan","domainName":"github"},"branch":"master","displayName":"mingyu-wan/ip[master]","outputFolderName":"mingyu-wan_ip_master"},{"location":{"location":"https://github.com/nicolengk/ip.git","repoName":"ip","organization":"nicolengk","domainName":"github"},"branch":"master","displayName":"nicolengk/ip[master]","outputFolderName":"nicolengk_ip_master"},{"location":{"location":"https://github.com/cyaoxuan/ip.git","repoName":"ip","organization":"cyaoxuan","domainName":"github"},"branch":"master","displayName":"cyaoxuan/ip[master]","outputFolderName":"cyaoxuan_ip_master"},{"location":{"location":"https://github.com/sunzihan23/ip.git","repoName":"ip","organization":"sunzihan23","domainName":"github"},"branch":"master","displayName":"sunzihan23/ip[master]","outputFolderName":"sunzihan23_ip_master"},{"location":{"location":"https://github.com/Goh-Li-Ting/ip.git","repoName":"ip","organization":"Goh-Li-Ting","domainName":"github"},"branch":"master","displayName":"Goh-Li-Ting/ip[master]","outputFolderName":"Goh-Li-Ting_ip_master"},{"location":{"location":"https://github.com/wjayee/ip.git","repoName":"ip","organization":"wjayee","domainName":"github"},"branch":"master","displayName":"wjayee/ip[master]","outputFolderName":"wjayee_ip_master"},{"location":{"location":"https://github.com/fuyiqiao/ip.git","repoName":"ip","organization":"fuyiqiao","domainName":"github"},"branch":"master","displayName":"fuyiqiao/ip[master]","outputFolderName":"fuyiqiao_ip_master"},{"location":{"location":"https://github.com/GlendaChong/ip.git","repoName":"ip","organization":"GlendaChong","domainName":"github"},"branch":"master","displayName":"GlendaChong/ip[master]","outputFolderName":"GlendaChong_ip_master"},{"location":{"location":"https://github.com/hyc17003/ip.git","repoName":"ip","organization":"hyc17003","domainName":"github"},"branch":"master","displayName":"hyc17003/ip[master]","outputFolderName":"hyc17003_ip_master"},{"location":{"location":"https://github.com/spatuly/ip.git","repoName":"ip","organization":"spatuly","domainName":"github"},"branch":"master","displayName":"spatuly/ip[master]","outputFolderName":"spatuly_ip_master"},{"location":{"location":"https://github.com/tanteckfang/ip.git","repoName":"ip","organization":"tanteckfang","domainName":"github"},"branch":"master","displayName":"tanteckfang/ip[master]","outputFolderName":"tanteckfang_ip_master"},{"location":{"location":"https://github.com/Clin-lyx/ip.git","repoName":"ip","organization":"Clin-lyx","domainName":"github"},"branch":"master","displayName":"Clin-lyx/ip[master]","outputFolderName":"Clin-lyx_ip_master"},{"location":{"location":"https://github.com/lyuanww/ip.git","repoName":"ip","organization":"lyuanww","domainName":"github"},"branch":"master","displayName":"lyuanww/ip[master]","outputFolderName":"lyuanww_ip_master"},{"location":{"location":"https://github.com/LimJH2002/ip.git","repoName":"ip","organization":"LimJH2002","domainName":"github"},"branch":"master","displayName":"LimJH2002/ip[master]","outputFolderName":"LimJH2002_ip_master"},{"location":{"location":"https://github.com/LWZ19/ip.git","repoName":"ip","organization":"LWZ19","domainName":"github"},"branch":"master","displayName":"LWZ19/ip[master]","outputFolderName":"LWZ19_ip_master"},{"location":{"location":"https://github.com/Gavino3o/ip.git","repoName":"ip","organization":"Gavino3o","domainName":"github"},"branch":"master","displayName":"Gavino3o/ip[master]","outputFolderName":"Gavino3o_ip_master"},{"location":{"location":"https://github.com/suryanshkushwaha/ip.git","repoName":"ip","organization":"suryanshkushwaha","domainName":"github"},"branch":"master","displayName":"suryanshkushwaha/ip[master]","outputFolderName":"suryanshkushwaha_ip_master"},{"location":{"location":"https://github.com/JasonRay168/ip.git","repoName":"ip","organization":"JasonRay168","domainName":"github"},"branch":"master","displayName":"JasonRay168/ip[master]","outputFolderName":"JasonRay168_ip_master"},{"location":{"location":"https://github.com/jovkusuma/ip.git","repoName":"ip","organization":"jovkusuma","domainName":"github"},"branch":"master","displayName":"jovkusuma/ip[master]","outputFolderName":"jovkusuma_ip_master"},{"location":{"location":"https://github.com/Chrainx/ip.git","repoName":"ip","organization":"Chrainx","domainName":"github"},"branch":"master","displayName":"Chrainx/ip[master]","outputFolderName":"Chrainx_ip_master"},{"location":{"location":"https://github.com/Propene-Dan/ip.git","repoName":"ip","organization":"Propene-Dan","domainName":"github"},"branch":"master","displayName":"Propene-Dan/ip[master]","outputFolderName":"Propene-Dan_ip_master"},{"location":{"location":"https://github.com/Daphne789/ip.git","repoName":"ip","organization":"Daphne789","domainName":"github"},"branch":"master","displayName":"Daphne789/ip[master]","outputFolderName":"Daphne789_ip_master"},{"location":{"location":"https://github.com/ChuanXinNg/ip.git","repoName":"ip","organization":"ChuanXinNg","domainName":"github"},"branch":"master","displayName":"ChuanXinNg/ip[master]","outputFolderName":"ChuanXinNg_ip_master"},{"location":{"location":"https://github.com/LHeng1/ip.git","repoName":"ip","organization":"LHeng1","domainName":"github"},"branch":"master","displayName":"LHeng1/ip[master]","outputFolderName":"LHeng1_ip_master"},{"location":{"location":"https://github.com/wr1159/ip.git","repoName":"ip","organization":"wr1159","domainName":"github"},"branch":"master","displayName":"wr1159/ip[master]","outputFolderName":"wr1159_ip_master"},{"location":{"location":"https://github.com/wjacobw/ip.git","repoName":"ip","organization":"wjacobw","domainName":"github"},"branch":"master","displayName":"wjacobw/ip[master]","outputFolderName":"wjacobw_ip_master"},{"location":{"location":"https://github.com/tiongjjyi/ip.git","repoName":"ip","organization":"tiongjjyi","domainName":"github"},"branch":"master","displayName":"tiongjjyi/ip[master]","outputFolderName":"tiongjjyi_ip_master"},{"location":{"location":"https://github.com/longnguyentan/ip.git","repoName":"ip","organization":"longnguyentan","domainName":"github"},"branch":"master","displayName":"longnguyentan/ip[master]","outputFolderName":"longnguyentan_ip_master"},{"location":{"location":"https://github.com/proto-aiken-13/ip.git","repoName":"ip","organization":"proto-aiken-13","domainName":"github"},"branch":"master","displayName":"proto-aiken-13/ip[master]","outputFolderName":"proto-aiken-13_ip_master"},{"location":{"location":"https://github.com/junnengsoo/ip.git","repoName":"ip","organization":"junnengsoo","domainName":"github"},"branch":"master","displayName":"junnengsoo/ip[master]","outputFolderName":"junnengsoo_ip_master"},{"location":{"location":"https://github.com/yezkez10/ip.git","repoName":"ip","organization":"yezkez10","domainName":"github"},"branch":"master","displayName":"yezkez10/ip[master]","outputFolderName":"yezkez10_ip_master"},{"location":{"location":"https://github.com/jamesebond/ip.git","repoName":"ip","organization":"jamesebond","domainName":"github"},"branch":"master","displayName":"jamesebond/ip[master]","outputFolderName":"jamesebond_ip_master"},{"location":{"location":"https://github.com/alyssaongyx/ip.git","repoName":"ip","organization":"alyssaongyx","domainName":"github"},"branch":"master","displayName":"alyssaongyx/ip[master]","outputFolderName":"alyssaongyx_ip_master"},{"location":{"location":"https://github.com/Carlintyj/ip.git","repoName":"ip","organization":"Carlintyj","domainName":"github"},"branch":"master","displayName":"Carlintyj/ip[master]","outputFolderName":"Carlintyj_ip_master"},{"location":{"location":"https://github.com/ruth-lim/ip.git","repoName":"ip","organization":"ruth-lim","domainName":"github"},"branch":"master","displayName":"ruth-lim/ip[master]","outputFolderName":"ruth-lim_ip_master"},{"location":{"location":"https://github.com/licongshen12/ip.git","repoName":"ip","organization":"licongshen12","domainName":"github"},"branch":"master","displayName":"licongshen12/ip[master]","outputFolderName":"licongshen12_ip_master"},{"location":{"location":"https://github.com/thaddeusong/ip.git","repoName":"ip","organization":"thaddeusong","domainName":"github"},"branch":"master","displayName":"thaddeusong/ip[master]","outputFolderName":"thaddeusong_ip_master"},{"location":{"location":"https://github.com/LordSaumya/ip.git","repoName":"ip","organization":"LordSaumya","domainName":"github"},"branch":"master","displayName":"LordSaumya/ip[master]","outputFolderName":"LordSaumya_ip_master"},{"location":{"location":"https://github.com/Kevin-Liusx/ip.git","repoName":"ip","organization":"Kevin-Liusx","domainName":"github"},"branch":"master","displayName":"Kevin-Liusx/ip[master]","outputFolderName":"Kevin-Liusx_ip_master"},{"location":{"location":"https://github.com/Ken-Lai/ip.git","repoName":"ip","organization":"Ken-Lai","domainName":"github"},"branch":"master","displayName":"Ken-Lai/ip[master]","outputFolderName":"Ken-Lai_ip_master"},{"location":{"location":"https://github.com/KumChaiYin/ip.git","repoName":"ip","organization":"KumChaiYin","domainName":"github"},"branch":"master","displayName":"KumChaiYin/ip[master]","outputFolderName":"KumChaiYin_ip_master"},{"location":{"location":"https://github.com/pzl111/ip.git","repoName":"ip","organization":"pzl111","domainName":"github"},"branch":"master","displayName":"pzl111/ip[master]","outputFolderName":"pzl111_ip_master"},{"location":{"location":"https://github.com/alientian/ip.git","repoName":"ip","organization":"alientian","domainName":"github"},"branch":"master","displayName":"alientian/ip[master]","outputFolderName":"alientian_ip_master"},{"location":{"location":"https://github.com/eyelessrhyme7/ip.git","repoName":"ip","organization":"eyelessrhyme7","domainName":"github"},"branch":"master","displayName":"eyelessrhyme7/ip[master]","outputFolderName":"eyelessrhyme7_ip_master"},{"location":{"location":"https://github.com/AprupKale/ip.git","repoName":"ip","organization":"AprupKale","domainName":"github"},"branch":"master","displayName":"AprupKale/ip[master]","outputFolderName":"AprupKale_ip_master"},{"location":{"location":"https://github.com/kimshitong/ip.git","repoName":"ip","organization":"kimshitong","domainName":"github"},"branch":"master","displayName":"kimshitong/ip[master]","outputFolderName":"kimshitong_ip_master"},{"location":{"location":"https://github.com/Bryan-Goh/ip.git","repoName":"ip","organization":"Bryan-Goh","domainName":"github"},"branch":"master","displayName":"Bryan-Goh/ip[master]","outputFolderName":"Bryan-Goh_ip_master"},{"location":{"location":"https://github.com/tiif/ip.git","repoName":"ip","organization":"tiif","domainName":"github"},"branch":"master","displayName":"tiif/ip[master]","outputFolderName":"tiif_ip_master"},{"location":{"location":"https://github.com/angkyakdifp/ip.git","repoName":"ip","organization":"angkyakdifp","domainName":"github"},"branch":"master","displayName":"angkyakdifp/ip[master]","outputFolderName":"angkyakdifp_ip_master"},{"location":{"location":"https://github.com/Chen-Kuei/ip.git","repoName":"ip","organization":"Chen-Kuei","domainName":"github"},"branch":"master","displayName":"Chen-Kuei/ip[master]","outputFolderName":"Chen-Kuei_ip_master"},{"location":{"location":"https://github.com/SinhaVedant/ip.git","repoName":"ip","organization":"SinhaVedant","domainName":"github"},"branch":"master","displayName":"SinhaVedant/ip[master]","outputFolderName":"SinhaVedant_ip_master"},{"location":{"location":"https://github.com/D-Limiter/ip.git","repoName":"ip","organization":"D-Limiter","domainName":"github"},"branch":"master","displayName":"D-Limiter/ip[master]","outputFolderName":"D-Limiter_ip_master"},{"location":{"location":"https://github.com/larrywang0701/ip.git","repoName":"ip","organization":"larrywang0701","domainName":"github"},"branch":"master","displayName":"larrywang0701/ip[master]","outputFolderName":"larrywang0701_ip_master"},{"location":{"location":"https://github.com/Song-Mengfei/ip.git","repoName":"ip","organization":"Song-Mengfei","domainName":"github"},"branch":"master","displayName":"Song-Mengfei/ip[master]","outputFolderName":"Song-Mengfei_ip_master"},{"location":{"location":"https://github.com/ChangruHenryQian/ip.git","repoName":"ip","organization":"ChangruHenryQian","domainName":"github"},"branch":"master","displayName":"ChangruHenryQian/ip[master]","outputFolderName":"ChangruHenryQian_ip_master"},{"location":{"location":"https://github.com/ketweeen/ip.git","repoName":"ip","organization":"ketweeen","domainName":"github"},"branch":"master","displayName":"ketweeen/ip[master]","outputFolderName":"ketweeen_ip_master"},{"location":{"location":"https://github.com/RSXIX/ip.git","repoName":"ip","organization":"RSXIX","domainName":"github"},"branch":"master","displayName":"RSXIX/ip[master]","outputFolderName":"RSXIX_ip_master"},{"location":{"location":"https://github.com/songgthu/ip.git","repoName":"ip","organization":"songgthu","domainName":"github"},"branch":"master","displayName":"songgthu/ip[master]","outputFolderName":"songgthu_ip_master"},{"location":{"location":"https://github.com/maj0-0/ip.git","repoName":"ip","organization":"maj0-0","domainName":"github"},"branch":"master","displayName":"maj0-0/ip[master]","outputFolderName":"maj0-0_ip_master"},{"location":{"location":"https://github.com/tiongMax/ip.git","repoName":"ip","organization":"tiongMax","domainName":"github"},"branch":"master","displayName":"tiongMax/ip[master]","outputFolderName":"tiongMax_ip_master"},{"location":{"location":"https://github.com/A1WAYSD/ip.git","repoName":"ip","organization":"A1WAYSD","domainName":"github"},"branch":"master","displayName":"A1WAYSD/ip[master]","outputFolderName":"A1WAYSD_ip_master"},{"location":{"location":"https://github.com/hjoneweek/ip.git","repoName":"ip","organization":"hjoneweek","domainName":"github"},"branch":"master","displayName":"hjoneweek/ip[master]","outputFolderName":"hjoneweek_ip_master"},{"location":{"location":"https://github.com/itsNatTan/ip.git","repoName":"ip","organization":"itsNatTan","domainName":"github"},"branch":"master","displayName":"itsNatTan/ip[master]","outputFolderName":"itsNatTan_ip_master"},{"location":{"location":"https://github.com/AustinHuang1203/ip.git","repoName":"ip","organization":"AustinHuang1203","domainName":"github"},"branch":"master","displayName":"AustinHuang1203/ip[master]","outputFolderName":"AustinHuang1203_ip_master"},{"location":{"location":"https://github.com/WangCheng0116/ip.git","repoName":"ip","organization":"WangCheng0116","domainName":"github"},"branch":"master","displayName":"WangCheng0116/ip[master]","outputFolderName":"WangCheng0116_ip_master"},{"location":{"location":"https://github.com/Tim-Siu/ip.git","repoName":"ip","organization":"Tim-Siu","domainName":"github"},"branch":"master","displayName":"Tim-Siu/ip[master]","outputFolderName":"Tim-Siu_ip_master"},{"location":{"location":"https://github.com/newway1814/ip.git","repoName":"ip","organization":"newway1814","domainName":"github"},"branch":"master","displayName":"newway1814/ip[master]","outputFolderName":"newway1814_ip_master"},{"location":{"location":"https://github.com/li-rongzhi/ip.git","repoName":"ip","organization":"li-rongzhi","domainName":"github"},"branch":"master","displayName":"li-rongzhi/ip[master]","outputFolderName":"li-rongzhi_ip_master"},{"location":{"location":"https://github.com/adhigop13/ip.git","repoName":"ip","organization":"adhigop13","domainName":"github"},"branch":"master","displayName":"adhigop13/ip[master]","outputFolderName":"adhigop13_ip_master"},{"location":{"location":"https://github.com/MadLamprey/ip.git","repoName":"ip","organization":"MadLamprey","domainName":"github"},"branch":"master","displayName":"MadLamprey/ip[master]","outputFolderName":"MadLamprey_ip_master"}],"errorSet":[],"sinceDate":"2023-08-18","untilDate":"2023-09-27","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}}}