Commit graph

80 commits

Author SHA1 Message Date
Jan Böhmer
63893ffabe Allow to automatically map categories from info providers to local categories using the "alternative names" system
This partially addresses issues discussed in discussion #808
2024-12-31 18:31:20 +01:00
Treeed
92e4976396
Show when parts from info provider already exist (#810)
* added button to show existing part with same manufacturer and mpn in provider list

* added button to edit existing part in provider list

* added docstring and comments

* replaced unnecessary double quotes

* Introduced a new twig variable localPart to split up the result

* Highlight a row, if the part is already existing

* Made buttons translatable

* Improved styling of the buttons and added a badge to show a hint

* Extracted database queries for part matching into its own service and optimized the query reducing the required queries by factor 2

* Allow to find existing parts via the stored providerReference

This should allow the database to more quickly find entries

* Allow to use part name and manufacturer alternative names for mapping

* Added a button to update a local part from the info provider and moved some buttons into dropdown menu

---------

Co-authored-by: jona <a@b.c>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2024-12-31 18:03:36 +01:00
Jan Böhmer
946032a101 Fixed phpstan analysis issues and bad code that showed up with phpstan 2.0 2024-12-28 23:08:08 +01:00
Vedran Vekic
0f92a69b03
Rewrite LCSC datasheet URL (#795) 2024-12-10 14:32:23 +01:00
Jan Böhmer
86d3f87694 [Digikey provider] Do not try to interpret certain parameters (like packages) as numbers
This fixes issue #682
2024-09-09 20:44:09 +02:00
Jan Böhmer
87a518703f Escape spaces in unnwrapped urls to avoid invalid URLs 2024-09-09 16:23:12 +02:00
Jan Böhmer
dd03ca943d Fixed phpstan issues 2024-09-09 14:52:18 +02:00
Jan Böhmer
6997861811 [OEMSecrets provider] Extract real URLs and remove tracking parts 2024-09-09 14:52:09 +02:00
Pasquale D'Orsi
1cc1530b20
OEMSecrets provider interface v.1.0 (#679)
* OEMSecrets provider interface v.1.0

New class for interacting with the OEMSecrets (https://www.oemsecrets.com) API version 3.0.1.

* Refactored info provider to be stateless and independent from session, optimized Part-DB API usage, and fixed PHPStan issues.

Refactored info provider to be stateless and independent from session, now use Psr\Cache, fixed issues identified by PHPStan, additional minor enhancements and bug fixes.

* Prefix cache keys with oemsecrets_ to avoid key collissions

* Use uniqid with more entropy to reduce probability of collisions

* Made $resultData local as it is only used inside searchByKeyword

* Use the parameter name $id from interface declaration for getDetails to avoid problems with named arguments

* Use unicode modifier for preg_match to avoid problems when parameters contain non-unicode strings

* Various small code quality improvements

* Try to retrieve the part from the API in getDetails, if the DTO was not cached before

* Improved code formatting

* Channged OEMSecret default country to DE to be consistent with other default values

* Do not call gc_collect_cycles in the loop to process the results, but only after all processBatch calls

---------

Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2024-09-09 00:59:44 +02:00
frank-f
fd521acaa4
Update LCSCProvider field for real datasheet URL (#670) 2024-08-21 17:35:55 +02:00
Jan Böhmer
f6e955b487 Hide mouser parts with an invalid product ID to avoid the issue described in #616 2024-06-22 23:37:50 +02:00
Jan Böhmer
20f32c7f12 Applied rector suggestions 2024-06-22 00:31:43 +02:00
SapuSeven
4eb223c401
Update LCSC API URL (#612) 2024-05-12 18:21:23 +02:00
frank-f
7a6b045030
Improve parameter parsing (#583)
* DigiKey: Skip empty values

* Move improved range detection from LCSCProvider to ParameterDTO class
Improve numeric value detection by moving extra info to value_text

* ParameterDTO: Add micro unit prefix

* Bring $value_text2 to a defined state

* ParameterDTO: Don't overwrite $unit if it's not empty

* ParameterDTO: Don't overwrite $unit if it's not empty

* Correct some inaccuacies in comments

* Added tests and fixed certain edge cases in parsing parameters

* Added more tests for parameter parsing

---------

Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2024-04-15 22:33:27 +02:00
frank-f
9770ffa46b
LCSC: Follow first 'pdfUrl' link to get real datasheet URL (#582)
* Follow first 'pdfUrl' link to get real datasheet URL

* Fix @param

* Fix @param

* Remove User-Agent header
It's not needed - LCSC was just having some server troubles over the weekend

* Added comment explaining the json_decode in getRealDatasheetUrl

---------

Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2024-04-03 12:38:20 +02:00
Jan Böhmer
59c4248efe Strip HTML tags from more LCSC fields
This should hopefully fix issue #553
2024-03-09 23:09:49 +01:00
Jan Böhmer
a5b101a0ea Fixed error, when retrieving prices in USD from LCSC
This fixes issue #552. It seems that LCSC changed their currency symbol for US-Dollar
2024-03-09 22:54:12 +01:00
Jan Böhmer
c989be2719 Retrieve the part mass from mouser API if available 2024-03-09 21:34:05 +01:00
Jan Böhmer
113e5b3bcd Escape not only the pathes of FileDTO objects returned by info providers but the preview image url too.
This fixes the second issue in #521
2024-03-05 22:52:27 +01:00
Jan Böhmer
925f5c0ce0 Fixed phpstan bug 2024-03-04 22:42:24 +01:00
Jan Böhmer
2bcbe1d0be Made mouser price info parsing more flexible
Austrian mouser returned some other formatted string, which caused problems on the old method. This fixes issue #540
2024-03-04 22:38:15 +01:00
Jan Böhmer
0e68f0783f Assume that a mouser part is active, if mouser has parts instock even if it is marked as "new part"
Related to #540
2024-03-04 22:18:35 +01:00
Jan Böhmer
d49bb1f4b5 Removed unused import statements 2024-03-03 20:34:36 +01:00
Jan Böhmer
87533b6031 Fixed further inspection issues 2024-03-03 20:33:24 +01:00
Jan Böhmer
42e604245c Fixed some inspection issues 2024-03-03 19:57:31 +01:00
Jan Böhmer
a5d184baef Use rawurlencode instead of urlencode to sanatize URL-unsafe characters returned by the info providers. 2024-02-24 23:58:27 +01:00
Jan Böhmer
12e9497ccf Sanatize remaining invalid URL characters somehow returned by InfoProviders
This fixes issue #521
2024-02-24 23:55:31 +01:00
Jan Böhmer
4b7d200aa2 Retrieve category info from LCSC 2024-02-24 23:32:50 +01:00
Jan Böhmer
e937432d1e Fixed phpstan issue 2024-02-24 23:23:46 +01:00
frank-f
e8bc93f67a
Fix RegEx to handle negative values and Ohms without prefix (#530)
* Fix RegEx to include negative values

* Update RegEx to handle Ω without prefix

* Update RegEx to include %

* Handle plus/minus values as range

* Fix copy&paste error

* Change minimum value to negative

* Escape decimal point and add slash to valid unit characters to be able to pick up for example "ppm/°C"

* Skip empty values
2024-02-24 22:48:38 +01:00
Jan Böhmer
20be83c345 Allow to configure the currency to get prices in for the LCSCProvider 2024-02-22 23:57:57 +01:00
Jan Böhmer
95ef97fcc2 Added possibility to enable/disable the LCSC provider 2024-02-22 23:32:12 +01:00
Jan Böhmer
d600cb4b9a Improved parsing of parameters. Values with unit and ranges get now properly parsed into the Part-DB structures 2024-02-22 23:22:52 +01:00
Jan Böhmer
0bbfaf9893 Improved typing and formatting of LCSC provider slightly 2024-02-22 22:41:09 +01:00
Nexrem
e3e562a154 Add LCSC Info Provider using their public API 2024-02-22 15:32:33 +01:00
Jan Böhmer
0f0adfcf36 Filter out duplicate file DTO returned by the info providers 2023-11-26 22:24:22 +01:00
buchmann
5144b75ed7 Fix image type alt name if newly generated 2023-10-25 15:56:40 +02:00
buchmann
aeed7c0802 fix line breaks 2023-10-25 14:29:18 +02:00
buchmann
2b470e6cdd Merge commit 'f8ccd5bc22' into d-buchmann-patch-1 2023-10-25 14:10:46 +02:00
d-buchmann
e6870c61ee
Update DTOtoEntityConverter.php 2023-10-25 14:01:46 +02:00
d-buchmann
f8ccd5bc22
Add price_related_quantity to PriceDTO.php 2023-10-25 13:58:59 +02:00
Jan Böhmer
7cd2662c77 Moved API key to query options of HTTPClient in MouserProvider 2023-10-08 00:18:25 +02:00
Jan Böhmer
4f0730b6f9 Properly formatted MouserProvider and fixed some type issues 2023-10-08 00:15:57 +02:00
Jan Böhmer
d7bc74fb2b Slightly restructured mouserprovider to remove redundant code 2023-10-08 00:00:10 +02:00
Jan Böhmer
a0b31cfd7e Made mouser provider key lowercase to be consistent with other providers 2023-10-07 23:49:04 +02:00
Jan Böhmer
33033bc5b1 Added the MouserProvider by @pdo59 2023-10-07 23:46:31 +02:00
Jan Böhmer
d847b74522 Reenable caching for part provider system. 2023-07-31 22:21:20 +02:00
Jan Böhmer
5750e7dbdf Fixed exception if octopart did not returned an category for a part 2023-07-31 22:21:08 +02:00
Jan Böhmer
ffe76f9d2e Use full path for categories returned by Octopart 2023-07-31 22:17:24 +02:00
Jan Böhmer
5b1ad541a8 Added an caching layer to octopart provider to reduce API queries. 2023-07-31 22:11:46 +02:00