mirror of
https://github.com/LucasVbr/LucasVbr.git
synced 2026-05-13 17:11:52 +00:00
feat: Clear main branch
Took 3 minutes
This commit is contained in:
@@ -1,6 +0,0 @@
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
venv/
|
||||
|
||||
.DS_Store
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
Generated
+14
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="PyDocumentationSettings">
|
||||
<option name="format" value="PLAIN" />
|
||||
<option name="myDocStringFormat" value="Plain" />
|
||||
</component>
|
||||
</module>
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="ASK" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||
<Languages>
|
||||
<language minSize="275" name="Python" />
|
||||
</Languages>
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||
<option name="ignoredErrors">
|
||||
<list>
|
||||
<option value="N806" />
|
||||
<option value="N802" />
|
||||
<option value="N803" />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="ignoredIdentifiers">
|
||||
<list>
|
||||
<option value="str.save" />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Black">
|
||||
<option name="sdkName" value="Python 3.9 (anime-scrapper)" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/LucasVbr.iml" filepath="$PROJECT_DIR$/.idea/LucasVbr.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+12
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CommitMessageInspectionProfile">
|
||||
<profile version="1.0">
|
||||
<inspection_tool class="CommitFormat" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="CommitNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+4
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectTasksOptions" suppressed-tasks="Pug/Jade" />
|
||||
</project>
|
||||
Generated
+14
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WebResourcesPaths">
|
||||
<contentEntries>
|
||||
<entry url="file://$PROJECT_DIR$">
|
||||
<entryData>
|
||||
<resourceRoots>
|
||||
<path value="file://$PROJECT_DIR$/static" />
|
||||
</resourceRoots>
|
||||
</entryData>
|
||||
</entry>
|
||||
</contentEntries>
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,68 +0,0 @@
|
||||
## Hi there! <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Hand%20gestures/Waving%20Hand.png" alt="Waving Hand" width="25" height="25" />
|
||||
|
||||
I'm **Lucàs**, a passionate developer based in 🇫🇷 **Pau, France**.<br/>
|
||||
My journey in the world of programming started 7 years ago when I fell in love with   .
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Travel%20and%20places/Rocket.png" alt="Rocket" width="25" height="25" /> What I do
|
||||
|
||||
- 💻 Currently, I'm studying at **UPPA** for my Master's degree in Informatics.
|
||||
- 🌐 I specialize in Web Development, and I'm always eager to explore new technologies and frameworks.
|
||||
- 🌱 I'm constantly learning and expanding my skill set to stay up-to-date with the ever-evolving tech landscape.
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Travel%20and%20places/Globe%20Showing%20Europe-Africa.png" alt="Globe Showing Europe-Africa" width="25" height="25" /> Connect with me
|
||||
|
||||
[](https://www.lucasvbr.dev)
|
||||
[](https://www.linkedin.com/in/lucasvbr)
|
||||
[](https://www.freecodecamp.org/LucasVbr)
|
||||
[](https://openclassrooms.com/fr/members/97j9zltv6225)
|
||||
[](https://exercism.org/profiles/LucasVbr)
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Objects/Hammer%20and%20Wrench.png" alt="Hammer and Wrench" width="25" height="25" /> Tech Stack
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Hand%20gestures/Handshake.png" alt="Handshake" width="25" height="25" /> Let's collaborate
|
||||
|
||||
👀 I'm always open to collaboration and exciting projects. If you have something in mind, feel free to reach out!
|
||||
|
||||
---
|
||||
|
||||
<footer>
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
</div>
|
||||
</footer>
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
user: "LucasVbr"
|
||||
|
||||
socials:
|
||||
- name: "Portfolio"
|
||||
url: "https://www.lucasvbr.dev"
|
||||
|
||||
- name: "Linkedin"
|
||||
url: "https://www.linkedin.com/in/lucasvbr"
|
||||
|
||||
- name: "FreeCodeCamp"
|
||||
url: "https://www.freecodecamp.org/LucasVbr"
|
||||
|
||||
- name: "OpenClassRooms"
|
||||
url: "https://openclassrooms.com/fr/members/97j9zltv6225"
|
||||
|
||||
- name: "Exercism"
|
||||
url: "https://exercism.org/profiles/LucasVbr"
|
||||
|
||||
skills:
|
||||
- Android
|
||||
- Angular
|
||||
- Astro
|
||||
- Bun
|
||||
- Bootstrap
|
||||
- Bulma
|
||||
- C
|
||||
- CSS3
|
||||
- Deno
|
||||
- Docker
|
||||
- Express
|
||||
- Figma
|
||||
- Git
|
||||
- GNU Bash
|
||||
- HTML5
|
||||
- JavaScript
|
||||
- MariaDB
|
||||
- MongoDB
|
||||
- MySQL
|
||||
- Node.js
|
||||
- OCaml
|
||||
- PHP
|
||||
- PostgreSQL
|
||||
- Pug
|
||||
- Python
|
||||
- React
|
||||
- SQLite
|
||||
- Symfony
|
||||
- TypeScript
|
||||
@@ -1,17 +0,0 @@
|
||||
from src.config import Config
|
||||
from src.template import Template
|
||||
|
||||
CONFIG_FILE = 'config.yaml'
|
||||
TEMPLATE_FILE = 'template.md'
|
||||
OUTPUT_FILE = 'README.md'
|
||||
|
||||
if __name__ == '__main__':
|
||||
template = Template(TEMPLATE_FILE)
|
||||
data = Config(CONFIG_FILE).get_data()
|
||||
|
||||
# Generate README file
|
||||
render = template.render(**data)
|
||||
with open(OUTPUT_FILE, 'w') as f:
|
||||
f.write(render)
|
||||
|
||||
print(f"{OUTPUT_FILE} generated successfully! 🎉")
|
||||
@@ -1,5 +0,0 @@
|
||||
pyyaml
|
||||
json
|
||||
requests
|
||||
simpleicons
|
||||
urllib3
|
||||
@@ -1,31 +0,0 @@
|
||||
import yaml
|
||||
from src.model.skill_list import skill_list
|
||||
import requests
|
||||
from src.model.social_list import social_list
|
||||
|
||||
|
||||
class Config:
|
||||
config_file_path: str
|
||||
config_data: dict[str, any] = None
|
||||
|
||||
def __init__(self, config_file_path: str):
|
||||
self.config_file_path = config_file_path
|
||||
|
||||
def load_config_file(self):
|
||||
with open(self.config_file_path, 'r') as config_file:
|
||||
self.config_data = yaml.safe_load(config_file)
|
||||
|
||||
def handle_user_info(self):
|
||||
user = self.config_data["user"]
|
||||
response = requests.get(f"https://api.github.com/users/{user}")
|
||||
if response.status_code != 200:
|
||||
raise Exception("User not found")
|
||||
self.config_data["user"] = response.json()
|
||||
|
||||
def get_data(self):
|
||||
self.load_config_file()
|
||||
self.handle_user_info()
|
||||
self.config_data["skills"] = skill_list(self.config_data["skills"])
|
||||
self.config_data["socials"] = social_list(self.config_data["socials"])
|
||||
|
||||
return self.config_data
|
||||
@@ -1,13 +0,0 @@
|
||||
from src.shield.skill_shield import SkillShield
|
||||
|
||||
|
||||
class Skill:
|
||||
alt: str
|
||||
src: str
|
||||
|
||||
def __init__(self, name: str):
|
||||
self.alt = name
|
||||
self.src = SkillShield(name).__str__()
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f""
|
||||
@@ -1,11 +0,0 @@
|
||||
from src.model.skill import Skill
|
||||
|
||||
|
||||
def skill_list(skills: list[str]) -> dict[str, str]:
|
||||
# Sort and remove duplicates
|
||||
skills = list(set(skills))
|
||||
skills.sort()
|
||||
|
||||
skills = {skill: Skill(skill).__str__() for skill in skills}
|
||||
skills["all"] = "\n".join([str(skill) for skill in skills.values()])
|
||||
return skills
|
||||
@@ -1,14 +0,0 @@
|
||||
from src.shield.social_shield import SocialShield
|
||||
|
||||
|
||||
class Social:
|
||||
name: str
|
||||
img: str
|
||||
|
||||
def __init__(self, name: str, url: str):
|
||||
self.name = name
|
||||
self.img = SocialShield(name, url).__str__()
|
||||
self.url = url
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"[]({self.url})"
|
||||
@@ -1,8 +0,0 @@
|
||||
from src.model.social import Social
|
||||
|
||||
|
||||
def social_list(socials: list) -> dict[str, str]:
|
||||
socials: dict[str, str] = {social.get("name"): str(Social(social.get("name"), social.get("url"))) for social in
|
||||
socials}
|
||||
socials["all"] = "\n".join([str(social) for social in socials.values()])
|
||||
return socials
|
||||
@@ -1,94 +0,0 @@
|
||||
from urllib.parse import urlunsplit, urlencode
|
||||
from simpleicons.all import icons
|
||||
|
||||
class ShieldBuilder:
|
||||
BASE_URL = "https://img.shields.io/static/v1"
|
||||
|
||||
message: str = None
|
||||
style: str = None
|
||||
logo: str = None
|
||||
logo_color: str = None
|
||||
label: str = None
|
||||
label_color: str = None
|
||||
color: str = None
|
||||
cache_seconds: int = None
|
||||
link: str = None
|
||||
|
||||
def __init__(self):
|
||||
self.logo_color = "white"
|
||||
self.label = " "
|
||||
self.color = "black"
|
||||
|
||||
def set_message(self, message: str):
|
||||
self.message = (
|
||||
message
|
||||
.replace("_", "__")
|
||||
.replace("-", "--")
|
||||
.replace(" ", "_")
|
||||
)
|
||||
return self
|
||||
|
||||
def set_style(self, style: str):
|
||||
if not style in ["flat", "flat-square", "plastic", "for-the-badge", "social"]:
|
||||
raise Exception("Invalid style")
|
||||
|
||||
self.style = style
|
||||
return self
|
||||
|
||||
def set_logo(self, logo: str):
|
||||
self.logo = icons.get(logo).slug if logo in icons else None
|
||||
return self
|
||||
|
||||
def set_logo_color(self, logo_color: str):
|
||||
self.logo_color = logo_color
|
||||
return self
|
||||
|
||||
def set_label(self, label: str):
|
||||
self.label = label
|
||||
return self
|
||||
|
||||
def set_label_color(self, label_color: str):
|
||||
self.label_color = label_color
|
||||
return self
|
||||
|
||||
def set_color(self, color: str):
|
||||
self.color = color
|
||||
return self
|
||||
|
||||
def set_cache_seconds(self, cache_seconds: int):
|
||||
self.cache_seconds = cache_seconds
|
||||
return self
|
||||
|
||||
def set_link(self, link: str):
|
||||
self.link = link
|
||||
return self
|
||||
|
||||
def get_query(self):
|
||||
query = {
|
||||
"message": self.message,
|
||||
"style": self.style,
|
||||
"logo": self.logo,
|
||||
"logoColor": self.logo_color,
|
||||
"label": self.label,
|
||||
"labelColor": self.label_color,
|
||||
"color": self.color,
|
||||
"cacheSeconds": self.cache_seconds,
|
||||
"link": self.link
|
||||
}
|
||||
|
||||
# Remove None values
|
||||
return {k: v for k, v in query.items() if v is not None}
|
||||
|
||||
def build(self):
|
||||
query = urlencode(self.get_query())
|
||||
return urlunsplit(("", "", self.BASE_URL, query, ""))
|
||||
|
||||
|
||||
if "__main__" == __name__:
|
||||
shield_builder = (
|
||||
ShieldBuilder()
|
||||
.set_logo("HTML5")
|
||||
.set_message("HTML5")
|
||||
.build()
|
||||
)
|
||||
print(shield_builder)
|
||||
@@ -1,33 +0,0 @@
|
||||
from simpleicons.all import icons
|
||||
|
||||
from src.shield.shield_builder import ShieldBuilder
|
||||
|
||||
|
||||
class SkillShield:
|
||||
|
||||
def __init__(self, name: str = None):
|
||||
self.builder = ShieldBuilder()
|
||||
self.skill = self.set_skill(name) if name is not None else None
|
||||
|
||||
def get_skill(self):
|
||||
return self.skill
|
||||
|
||||
def set_skill(self, name: str):
|
||||
self.skill = icons.get(name)
|
||||
|
||||
if self.skill is not None:
|
||||
(self.builder.set_message(self.skill.title)
|
||||
.set_logo(self.skill.slug)
|
||||
.set_color(self.skill.hex)
|
||||
)
|
||||
else:
|
||||
self.builder.set_message(name)
|
||||
|
||||
def get_builder(self):
|
||||
return self.builder
|
||||
|
||||
def __repr__(self):
|
||||
self.__str__()
|
||||
|
||||
def __str__(self):
|
||||
return self.builder.build()
|
||||
@@ -1,37 +0,0 @@
|
||||
from simpleicons.all import icons
|
||||
|
||||
from src.shield.shield_builder import ShieldBuilder
|
||||
|
||||
|
||||
class SocialShield:
|
||||
|
||||
def __init__(self, name: str = None, url: str = None):
|
||||
self.builder = ShieldBuilder().set_style("for-the-badge")
|
||||
self.name = name
|
||||
self.url = url
|
||||
self.social = self.set_social(name, url) if name is not None and url is not None else None
|
||||
|
||||
def get_social(self):
|
||||
return self.social
|
||||
|
||||
def set_social(self, name: str, url: str):
|
||||
self.social = icons.get(name)
|
||||
|
||||
if self.social is not None:
|
||||
(self.builder.set_message(self.social.title)
|
||||
.set_logo(self.social.slug)
|
||||
.set_color(self.social.hex)
|
||||
)
|
||||
else:
|
||||
self.builder.set_message(name)
|
||||
|
||||
self.builder.set_link(url)
|
||||
|
||||
def get_builder(self):
|
||||
return self.builder
|
||||
|
||||
def __repr__(self):
|
||||
self.__str__()
|
||||
|
||||
def __str__(self):
|
||||
return self.builder.build()
|
||||
@@ -1,10 +0,0 @@
|
||||
class Template:
|
||||
|
||||
def __init__(self, template_path: str):
|
||||
self.template_path = template_path
|
||||
|
||||
def render(self, **kwargs):
|
||||
with open(self.template_path, 'r') as f:
|
||||
template = f.read()
|
||||
|
||||
return template.format(**kwargs)
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
## Hi there! <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Hand%20gestures/Waving%20Hand.png" alt="Waving Hand" width="25" height="25" />
|
||||
|
||||
I'm **{user[name]}**, a passionate developer based in 🇫🇷 **{user[location]}**.<br/>
|
||||
My journey in the world of programming started 7 years ago when I fell in love with {skills[HTML5]} {skills[CSS3]} {skills[JavaScript]}.
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Travel%20and%20places/Rocket.png" alt="Rocket" width="25" height="25" /> What I do
|
||||
|
||||
- 💻 Currently, I'm studying at **{user[company]}** for my Master's degree in Informatics.
|
||||
- 🌐 I specialize in Web Development, and I'm always eager to explore new technologies and frameworks.
|
||||
- 🌱 I'm constantly learning and expanding my skill set to stay up-to-date with the ever-evolving tech landscape.
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Travel%20and%20places/Globe%20Showing%20Europe-Africa.png" alt="Globe Showing Europe-Africa" width="25" height="25" /> Connect with me
|
||||
|
||||
{socials[all]}
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Objects/Hammer%20and%20Wrench.png" alt="Hammer and Wrench" width="25" height="25" /> Tech Stack
|
||||
|
||||
{skills[all]}
|
||||
|
||||
### <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Hand%20gestures/Handshake.png" alt="Handshake" width="25" height="25" /> Let's collaborate
|
||||
|
||||
👀 I'm always open to collaboration and exciting projects. If you have something in mind, feel free to reach out!
|
||||
|
||||
---
|
||||
|
||||
<footer>
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
</div>
|
||||
</footer>
|
||||
Reference in New Issue
Block a user